2 つのテーブル間に多対多の関係があります。
機能の 1 つは、ナビゲーション テーブル内のすべてのレコードを削除してから再作成することです。
最初に関連するレコードを削除し、次にこれを使用してコレクションを再作成することにより、Entity Framework を使用しました。
foreach (var funcionario in listFuncionario)
{
int fun_id = 0;
if (!int.TryParse(funcionario.Trim(), out fun_id))
continue;
var fun = db.Funcionario.Find(fun_id);
fun.Servicio.ToList().ForEach(s => db.Servicio.Remove(s));
fun.Servicio.Clear();
foreach (var servicio in listServicio)
fun.Servicio.Add(db.Servicio.Find(servicio));
}
db.SaveChanges();
これらのループは非常に遅い (特に削除) ですが、andステートメントExecuteSqlCommand
を直接発行する場合、ループは高速です。DELETE
INSERT
Entity Framework やオブジェクト指向プログラミングの本質が失われているので、SQL コマンドを直接発行するのは好きではありません。Entity Framework を使用してより効率的な方法でそれを行う方法を知っていますか?
よろしく、 ハイメ