实体框架-在N:N中删除单个实例的完整关系
本文关键字:实例 关系 单个 框架 实体 删除 | 更新日期: 2023-09-27 17:53:14
我有以下类
public class ObjectA{
private List<ObjectB> list;
}
ObjectA和ObjectB是N:N关系
如何删除两者之间的所有关系?
似乎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…")手动删除关系表中的关系