繁体   English   中英

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

[英]Deleting entity with foreign key lazy-loaded property which is not loaded yet in entity framework 6

我有这个示例实体:

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. 使用级联删除定义。 级联删除信息
  2. 将要删除的对象附加到上下文,然后调用Remove

注意:您可以通过读取的方式将整个对象放入上下文中。 但是,可以通过仅将键集附加到外壳程序对象来删除和输入。 即新的Poco(){id = x}; 如果您打算接下来删除它,则无需设置其余poco。 如果您不知道要删除的ID,则需要“加载”它们。

编辑:如果您有引用。 您将需要首先删除从属条目。 编辑2:添加新的Poco()注释

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM