如何在EF7(Core)中為同一個表創建多個關係?


我正在嘗試構建一個遷移,但它在下面的類中遇到了絆腳石:

public class Unit
{
    public int UnitID { get; set; }
    ...
    public Nullable<int> PreviousUnitID { get; set; }

    [ForeignKey("PreviousUnitID")]
    public Unit PreviousUnit { get; set; }

    public Nullable<int> SubsequentUnitID { get; set; }

    [ForeignKey("SubsequentUnitID")]
    public Unit SubsequentUnit { get; set; }
}

“導航屬性''無法添加到實體類型'Unit',因為實體類型'Unit'上已存在具有相同名稱的導航屬性。

我假設這個稍微奇怪的導航是責備所以我遺漏了其餘的課程。有誰知道我可以繞過這個問題的方法?

謝謝!

一般承認的答案

這是RC1的已知問題。

問題:

開發鏈: https//github.com/aspnet/EntityFramework/pull/4239

羅丹米勒於1月8日評論

這將是#4069,它在我們的夜間版本中修復並將在RC2中發布。


熱門答案

使用virtual關鍵字:

public virtual Unit PreviousUnit { get; set; }
public virtual Unit SubsequentUnit { get; set; }

完整代碼:

public virtual Unit PreviousUnit { get; set; }
public virtual Unit SubsequentUnit { get; set; }

這也可以延遲加載單位。

編輯:也許這也有幫助: https//github.com/aspnet/EntityFramework/issues/3911





許可下: CC-BY-SA
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因