2016-02-19 117 views
0

我有一個擁有兩個外鍵的MasterUserApprovalOfficial實體,MasterUserId和SoftwareSystemId。 EF 7是足夠聰明弄清楚,這兩個屬性是外國keys.Here是我MasterUserApprovalOfficial類實體框架7外鍵列名

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作爲​​(類的名稱追加到主鍵的名稱)

enter image description here

有任何理由不過是創造出來的?

回答

3
public int SofwareSystemId { get; set; } 

再次讀取該屬性。有一個缺少的:)

第二個答案也是正確的,你不需要屬性的外鍵。這個類的成員已經足夠了

+0

很好的捕獲,它很奇怪它改變了外鍵的名字,然後 –

+0

確實,這看起來像是EF的奇怪行爲。對此我唯一的解釋是,EF是'聰明的',不想在用戶生成列時混淆用戶。 – FKutsche

+0

謝謝,完全錯過了!閱讀,真實,我猜是一種藝術! – user65439

1

使用ForeignKeyColumn屬性來解決這個問題:

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

默認情況下,外鍵將「ID」被加入它的背後,卻是因爲你已經有一個名稱的屬性(和EF沒有按認識到這是外鍵),它變成​​。