私は次のクラスを持っています
public class ObjectA{
private List<ObjectB> list;
}
ObjectA と ObjectB は N:N の関係にあります。
2 つの関係をすべて削除するにはどうすればよいですか?
list.clear() は機能しないようです。
ありがとう。
私は次のクラスを持っています
public class ObjectA{
private List<ObjectB> list;
}
ObjectA と ObjectB は N:N の関係にあります。
2 つの関係をすべて削除するにはどうすればよいですか?
list.clear() は機能しないようです。
ありがとう。
エンティティがコンテキストにアタッチされている場合は、次のようlist.Clear()
に機能します。
using (var ctx = new MyContext())
{
var objectA = ctx.ObjectAs.Include("list").Single(o => o.Id == someId);
objectA.list.Clear();
ctx.SaveChanges();
}
list.Clear() は接続モードで問題なく動作しますが、すべての B レコードがデータベースから取得された A に属している必要があります。B が多すぎると、パフォーマンスが低下することがあります (実際にはほとんど発生しません)。その場合、ストア プロシージャまたは context.Database.ExecuteSqlCommand("delete from...") を使用して、関係テーブルの関係を手動で削除することもできます。