我試圖在實體框架代碼中首先使用繼承來實現與公共實體解決方案的一對多關係。它不創造理想的結果。我需要這樣的模式:實體框架:一對多關係的公共實體
CommonEntity Address Licensee User
-------------- ------------- ----------- ---------
CID(PK) AddressID(PK) CID(FK/PK) CID(FK/PK)
AddressID(FK)
CommonEntity:
public class CommonEntity{
[key]
public int CID{get;set;}
public virtual List<Address> Addresses { get; set; }
}
地址:
public class Address{
[key]
public int AddressID{get;set;}
public string country{get;set;}
}
許可:
public class Licensee{
[key]
[ForeignKey("CommonEntity")]
public int CID{get;set;}
public string CompanyName{get;set;}
}
用戶:
public class User{
[key]
[ForeignKey("CommonEntity")]
public int CID{get;set;}
public string UserName{get;set;}
public string Pass{get;set;}
}
的DbContext類:
public class DataModelContext : DbContext
{
public DbSet<CommonEntity> CommonEntity { get; set; }
}
上面的代碼是給這個例外:
的ForeignKeyAttribute財產 'CommonID' 在類型 'TestingEF.Models.Licensee' 是無效的。在依賴類型 'TestingEF.Models.Licensee'上找不到'導航屬性 'CommonEntity'。名稱值應該是有效的 導航屬性名稱。
當您使用'[ForeignKey的( 「CommonEntity」)]',你還需要一個導航屬性'公共虛擬CommonEntity CommonEntity {獲得;組; }'。 –