删除实体框架6中尚未加载的具有外键延迟加载属性的实体

时间:2013-11-17 13:32:28

标签: c# entity-framework

我有这个示例实体:

public class A{

[Key]
public int ID {get; set;} 

public virtual List<B> BsCollection {get; set;}

public A(){

   BsCollection = new List<B>();
}

}

在我的代码中,我加载ID为1的对象A,但不要延迟加载B集合。 然后我想从数据库中删除A对象,并删除数据库中与我正在删除的B对象相关的所有A个对象。

但是如果我还没有加载它们,怎么能删除它们呢?

有没有办法在没有从B集合到数据库的无用调用的情况下进行这样的删除?

1 个答案:

答案 0 :(得分:1)

你要么:

  1. 使用级联删除定义。 cascade delete info
  2. 将要删除的对象附加到上下文中 然后拨打删除
  3. 注意:您可以通过读取将完整对象放入上下文中。 但是,可以通过仅使用键集附加shell对象来删除和输入。 即新的Poco(){id = x};如果您打算稍后删除它,则无需设置其余的poco。 如果你不知道要删除的ID,你需要“加载”它们。

    编辑:如果您有参考。您需要先删除相关条目。 编辑2:添加新Poco()评论