2011-11-23 99 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了解如何解决地址问题的其他想法。