我知道这不应该是微不足道的,但到目前为止找不到解决方案......
使用 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
作为鉴别器。我在模型设计器中这样做了,当我尝试添加第二个继承实体时,它告诉我具有这些名称的属性已经存在,并且不允许我重命名它们以匹配第一个实体的属性。
任何想法如何做到这一点?请帮我把它搞砸:) 谢谢!!!