0

我有以下课程

public class ObjectA{
   private List<ObjectB> list;    
}

ObjectA 和 ObjectB 是 N:N 关系。
如何删除两者之间的所有关系?
似乎 list.clear() 没有做这项工作。
谢谢。

4

2 回答 2

1

如果实体附加到上下文list.Clear()将完成工作,例如:

using (var ctx = new MyContext())
{
    var objectA = ctx.ObjectAs.Include("list").Single(o => o.Id == someId);

    objectA.list.Clear();

    ctx.SaveChanges();
}
于 2013-01-15T17:35:15.107 回答
0

list.Clear() 在连接模式下工作得很好,但它需要所有 B 记录属于从数据库中提取的 A。有时如果 B 太多可能会影响性能(在实践中很少发生)。在这种情况下,您还可以使用存储过程或 context.Database.ExecuteSqlCommand("delete from...") 手动删除关系表中的关系。

于 2013-01-15T18:05:55.327 回答