我一直在尋找解決方案,無法找到好的信息。許多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