2011-11-23 156 views
1

我開始與EF 4.1代碼首先,我想知道,如果有人在那裏可以幫助我瞭解的最好方式映射這樣的情景:EF 4.1代碼第一次 - 映射關係

我有一個類地址:

public class Address 
{ 
    public int Id { get; set; } 
    public string Line1 { get; set; } 
    public string Line2 { get; set; } 
    public string City { get; set; } 
    public string State { get; set; } 
    public string ZipCode { get; set; } 
} 

而且我還有其他兩個班誰擁有地址:

A) Company has Office Address (required) and Mailing Address 
    A) Person has Home Address (required), Work Address and "Other Address" 

同樣的情形也發生了與電話號碼。 我真的很感謝這方面的幫助。提前致謝。

回答

1

我肯定會避免「表每一個分層」的建模工作(即您可以嵌入地址直接進入單位和個人)

意義的地址是標準化你的實體,並分開儲存(所以TPC)

然後你可以要麼

  1. 添加FK「OfficeAddressId」(非可空)和「MailingAddressId」(可爲空),以公司和3×地址FK在人 但是,根據關於「地址queryin要求g',因爲有兩個不同的實體引用了地址,所以找出哪個地址屬於哪個實體或者你正在查看哪種類型的地址並不是一件容易的事情,而不必「盲目地」回到公司和個人。

或可能矯枉過正,但一個更靈活的模型將是

  • 添加許多:許多表「EntityAddress」連接或者公司地址或者個人地址,然後添加分類表「AddressType」(辦公室,郵寄,家庭,工作等)。儘管您需要通過業務邏輯限制添加到很多地址的地址類型,但它爲將來的地址擴展提供了最大的靈活性。
  • 查看這些帖子herehere瞭解如何解決地址問題的其他想法。