實體框架7外鍵列名稱

c# entity-framework entity-framework-core

我有一個MasterUserApprovalOfficial實體,有兩個外鍵,MasterUserId和SoftwareSystemId。 EF 7足夠聰明,可以發現這兩個屬性是外鍵。這是我的MasterUserApprovalOfficial類

public class MasterUserApprovalOfficial
{
    public int MasterUserApprovalOfficialId { get; set; }

    public int MasterUserId { get; set; }

    public MasterUser MasterUser { get; set; }

    public int SofwareSystemId { get; set; }

    public SoftwareSystem SoftwareSystem { get; set; }

    public bool Active { get; set; }

    public DateTime CreateDate { get; set; }

    public MasterUserApprovalOfficial()
    {
        CreateDate = DateTime.Now;
    }
}

如果我查看創建的表,MasterUserId列已創建並按預期命名,則SoftwareSystemId列將創建為SoftwareSystemSoftwareSystemId (附加到主鍵名稱的類的名稱)

在此處輸入圖像描述

這有什麼理由嗎?

一般承認的答案

public int SofwareSystemId { get; set; }

再次讀取該屬性。有失踪:)

第二個答案也是對的,你不需要外鍵的屬性。這個班的成員就夠了


熱門答案

使用ForeignKeyColumn屬性來解決此問題:

[ForeignKey("SoftwareSystem"),Column("SoftwareSystemId")]
public int SoftwareSystemId { get; set; }

默認情況下,外鍵後面會添加“Id”,但由於你已經擁有了一個具有該名稱的屬性(並且EF不能識別它是外鍵,因此它會變為SoftwareSystemSoftwareSystemId



Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow