我一直在寻找解决方案,无法找到好的信息。许多EF文件已经过时了。这是我的问题。实体框架:由于外键约束导致的依赖
如果我通过ParentID导航属性向孩子添加孩子,一切正常。
如果我通过孩子列表中添加一个孩子的父母和孩子是预先存在的,我得到这个异常:
DbUpdateException:无法确定 的依赖 操作的有效排序。 到外键约束, 需求或商店生成的 值可能存在依存关系。
如果我通过孩子列表中添加一个孩子的家长和孩子是新的(也需要保留),我得到这个异常:
DbUpdateConcurrencyException:商店 更新,插入,或删除语句 影响了意外的行数 (0)。实体可能已被修改 或自实体加载后删除。 刷新ObjectStateManager条目。
Node.cs
public class Node
{
public long ID { get; private set; }
public long? ParentID { get; set; }
public List<Node> Children { get; set; }
}
相关DbContext.cs
protected override void OnModelCreating(DbModelBuilder mb)
{
mb.Entity<Node>()
.HasMany(c => c.Children)
.WithOptional()
.HasForeignKey(c => c.ParentID);
}
我不想动态代理。我会尝试使用虚拟标记来关闭代理,但我认为这不会有帮助。这不是一个懒惰加载问题或任何东西(据我所知,我想)。我将不得不在明天更新。 – OpticalDelusion