2017-10-09 1 views
0

Je suis nouveau dans EF. J'ai besoin d'ajouter des données si elle n'existe pas dans db else update.i j'ai un code mais je ne pouvais pas comprendre comment l'appeler. J'ai donc besoin d'un petit exemple qui me dit comment utiliser AddOrModify pour ajouter ou mettre à jour les données de mes employés.Entity Framework Insérer ou mettre à jour les données si elles existent

Est-ce que le code ci-dessous fait l'aller-retour db pour vérifier que les données existent ou non?

comment faire la méthode d'extension de code ci-dessous?

public void AddOrModify<T>(T entity, string key) where T : class, IEntity 
{ 
    using (var context = new MyContainer()) 
    { 
     if (context.Set<T>().Any(e => e.MyKey == key)) 
     { 
       context.Entry(entity).State = EntityState.Modified; 
     } 
     else 
     { 
       context.Entry(entity).State = EntityState.Added; 
     } 

     context.SaveChanges(); 
    } 
} 

recherche d'aide avec un exemple de code.

+0

Vous ne voulez probablement pas marquer une entité comme 'Modified'. Plus probablement comme 'Inchangé' pour l'attacher à un contexte et commencer à suivre ses modifications: https://stackoverflow.com/a/39133524/861716. Cependant, vous pouvez également l'utiliser pour définir l'état 'Modified' si vous le souhaitez. –

Répondre

0

Ce faisant:

public void AddOrModify<T>(this DbSet<T> set, T entity, string key) where T : class, IEntity 
{ 
    ... 
} 
+0

montre également comment appeler la fonction AddOrModify avec un petit exemple de code si possible s'il vous plaît. –