我看過類似的問題;但沒有一個完全一樣;沒有人幫助過我。我希望遷移對列使用不同的名稱,而不是我的類中的屬性。在內置類型中,我可以使用[Column("newName")]
來執行此操作。但是,當我想要一個外鍵給另一個類時,這不起作用。在實體框架代碼優先遷移中選擇列的名稱
換句話說,這工作得很好:
[Column("NameInDB")]
public string NameInCode { get; set; }
但是,這並不在所有的工作:
[Column("Employee_Id")]
public virtual Employee Owner { get; set; }
在第二種情況下,遷移還是將列創建爲Owner_Id;它完全忽略了Column註釋。有沒有說它的Column註解只適用於內置類型?我找不到任何關於此的信息。
我知道這是可以使用[ForeignKey]
註解要做到這一點,但如果我這樣做,我必須在我的代碼額外的屬性,我不想:
[ForeignKey("Employee_Id")]
public virtual Employee Owner { get; set; }
public int Employee_Id { get; set; }
我不不想這樣做,因爲在這種情況下Employee_Id屬性是多餘的;我寧願只使用Owner屬性。有沒有解決這個問題的方法,或者[Column]
似乎被忽略的一個很好的理由?
這是有道理的;除了我所有的類關係只有父類實例作爲屬性,而不是int(ID)屬性。 Like,Employee有一個公司屬性,它是公司類的一個實例。我沒有任何Company_Id屬性; EF似乎將它映射到數據庫中的Company_Id。 – GendoIkari