2017-10-09 14 views
0

EFで新しく追加されました。私はそれがdbに存在しない場合、データを追加する必要があります。data.iにはコードがありますが、それを呼び出す方法を理解できませんでした。 AddOrModifyを使用して従業員データを追加または更新する方法を教えてください。エンティティフレームワークデータが存在する場合は挿入または更新

以下のコードは、データの存在をチェックするためにdb往復を行いますか?

以下のコード拡張方法は?

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(); 
    } 
} 

サンプルコードのヘルプを探しています。そうすることによって

+0

おそらくModified' 'としての実体をマークする必要はありません。それを文脈に付け加え、変更を追跡し始めるためには、「Unchanged」と言えるでしょう:https://stackoverflow.com/a/39133524/861716。しかし、あなたが好きな場合は、それを使って状態を 'Modified'に設定することもできます。 –

答えて

0

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

では、できるだけ小さなサンプルコードでAddOrModify関数を呼び出す方法も示しています。 –

関連する問題