我一直潛伏在很長一段時間,所以這裏的第一個問題,很多關係(一個或多個);)實體框架代碼優先許多在單個表
我一直在玩實體框架5.0的Code First我想要做如下:
我有兩個實體,我想每一個實體有關聯的下列方式處理實體:
- 我有一個地址存儲地址值實體,它與實體沒有關係爲它具有價值,而不是
- 還有一個實體通訊錄具有參考地址實體和coresponding實體(人,公司,另一些人在未來)
這裏的代碼:
public partial class Address : BaseEntity
{
[Key]
public int ID { get; set; }
public string Street { get; set; }
public string CityName { get; set; }
public int? PostalCode { get; set; }
public virtual ICollection<Person> Persons { get; set; }
public virtual ICollection<Company> Companies{ get; set; }
}
public partial class Person : BaseEntity
{
[Key]
public int ID { get; set; }
public virtual ICollection<Address> Addresses { get; set; }
}
public partial class Company: BaseEntity
{
[Key]
public int ID { get; set; }
public virtual ICollection<Address> Addresses { get; set; }
}
什麼將這個做的是創建數據庫架構與表:
- 地址
- AddressPerson(具有複合主鍵)
- ADDRESS_ID
- PERSON_ID
- AddressCompany
- ADDRESS_ID
- COMPANY_ID
- 人民
- 公司
這就是我想做的事:
- 地址
- 通訊錄
- ADDRESS_ID(PK)
- PERSON_ID(FK)
- COMPANY_ID(FK)
- 人民
- 公司
我想要做的是有表所示通訊錄:
public partial class AddressBook
{
[Key]
public int ID { get; set; }
public virtual Address Address { get; set; }
public virtual Person Person { get; set; }
public virtual Company Company { get; set; }
}
我不知道如何定義導航屬性人和公司類。
他們應該有ICollection<Address> Addresses
導航屬性,因爲我希望他們只需收集地址而不知道底層的地址地址簿。
是否有可能與DbModelBuilder
要做到這一點,或者我應該寫代碼裏面getter
和ICollection<Address> Addresses
財產setter
,並得到地址從通訊錄?
謝謝!
感謝您的幫助 - 我得出結論,我應該做的事情就像在第一個例子。我甚至編寫了解決方案的一部分,但我不太喜歡它。我認爲應該有更好的辦法。 – dpihac 2013-03-24 16:57:22