我知道这不应该是微不足道的,但到目前为止找不到解决方案......
使用 EF4 DB-First 模型,将 LINQ-to-Entities 与将由 MVC3 应用程序使用的 POCO 一起使用。
我有三个实体Customer和CustomerAdress一个查找CustomerAddressType。
Customer CustomerAddress CustomerAddressType
---------- ---------------- -------------------
CustomerId (PK) CustomerAddressId (PK) CustomerAddressTypeId (PK)
LastName CustomerId (FK) Description (Values: Mailing, Billing)
FirstName CustomerAddressTypeId (FK)
MiddleInitial Address
.... City
State
Zip
StartDate
EndDate
如您所见,CustomerAddress有一个FK CustomerAddressTypeId,它标识这是什么类型的地址,即Mailing或Billing。
我想:
- 有能力做这样的事情:
Customer.CustomerAddress.OfType<MailingAddress>为客户收集邮寄地址。 - 有一个
CurrentMailingAddress和CurrentBillingAddress属性,它将返回CustomerAddress.OfType<>具有最高StartDate和EndDate未来的单个实例。 - 也可以
Address通过Zip属性并将这些属性重构为Complex TypeAddress。
我尝试创建 2 个继承的实体CustomerAddress(假设它是 TPH [table-per-hierarchy] 策略):
MailingAddress并且BillingAddress,CustomerAddressTypeId作为鉴别器。我在模型设计器中这样做了,当我尝试添加第二个继承实体时,它告诉我具有这些名称的属性已经存在,并且不允许我重命名它们以匹配第一个实体的属性。
任何想法如何做到这一点?请帮我把它搞砸:) 谢谢!!!