簡體   English   中英

我可以基於某些字段(不是主鍵!,唯一鍵或外鍵)具有導航屬性嗎?

[英]Can I have navigation properties based on certain fields (not primary keys!, unique or foreign keys)?

說我們有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是Table1和Table2中的主鍵,僅此而已!

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

因此,我希望將Table2中的ID2用作外鍵,而不是引用Table1中的 列ID ,而是引用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; }

    //...
}

我成功地將所有Table2行擴展為某個Table1行。

sql的聯接將類似於:Table1。 ID = Table2.ID2; 我需要像表1一樣。 ID2 =表2.ID2

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM