2

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を直接発行する場合、ループは高速です。DELETEINSERT

Entity Framework やオブジェクト指向プログラミングの本質が失われているので、SQL コマンドを直接発行するのは好きではありません。Entity Framework を使用してより効率的な方法でそれを行う方法を知っていますか?

よろしく、 ハイメ

4

1 に答える 1