0

說我們有2個表我可以根據特定字段(不是主鍵!,唯一鍵還是外鍵)具有導航屬性嗎?

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

    public int ID2 { get; set; } 

    public int ID3 { get; set; } 
} 

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

    public int ID2 { get; set; } 

    public int ID3 { get; set; } 
} 

列ID是在表1和表2中的主鍵,這就是它!

現在,我想創建一個關係(不在數據庫!);我只是想對EntityFramework說謊,這兩個表之間存在關係。

所以,我想從表2 ID2是外鍵和參考不列ID從表1 ,但列ID2

這可能嗎?

EDIT2

我知道有可能像

public class Table2 
{ 
    //... 

    public int ID2 { get; set; } 

    [ForeignKey("ID2")] 
    public Table1 Table1 { get; set; } 

    //... 
} 

public class Table1 
{ 

    //... 

    public virtual ICollection<Table2> Table2 { get; set; } 

    //... 
} 

我成功地擴大了所有表2行一定表1的行。

sql的連接將如下所示:Table1。 ID = Table2.ID2; 我需要它像Table1。 ID2 = Table2.ID2

+0

這對我沒有任何意義。你爲什麼要「撒謊」,並有這樣的假關係? – mr100

+0

因爲我處理的模型...有一個表提供這些假關係,這個表經常改變。因此,在控制檯應用程序中,只要此表更改,就會生成模型。閱讀edit2 – RazvanR

回答

1

我最終爲A表創建2個視圖並將這些視圖映射到EF實體。第一個視圖的ID爲主鍵,第二個視圖的ID2爲主鍵。顯然,第二個視圖是用於擴展所有Table2行的視圖。

相關問題