ForeignKey(字串)屬性
如果需要不遵循 EF 約定的外來鍵,則指定自定義外來鍵名稱。
public class Person
{
public int IdAddress { get; set; }
[ForeignKey(nameof(IdAddress))]
public virtual Address HomeAddress { get; set; }
}
當你與同一實體型別有多個關係時,也可以使用此選項。
using System.ComponentModel.DataAnnotations.Schema;
public class Customer
{
...
public int MailingAddressID { get; set; }
public int BillingAddressID { get; set; }
[ForeignKey("MailingAddressID")]
public virtual Address MailingAddress { get; set; }
[ForeignKey("BillingAddressID")]
public virtual Address BillingAddress { get; set; }
}
如果沒有 ForeignKey
屬性,EF 可能會在獲取 MailingAddress
時將它們混淆並使用 BillingAddressID
的值,或者它可能會根據自己的命名約定(如 Address_MailingAddress_Id
)為列提供不同的名稱並嘗試使用相反(如果你將其與現有資料庫一起使用,則會導致錯誤)。