Я знаю, что это не должно быть тривиально, но пока не могу найти разрешение ...
Работа с моделью EF4 DB-First, используя LINQ-to-Entities с POCO, которые будут использоватьсяприложением MVC3.
У меня есть три объекта 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 или Биллинг .
Я бы хотел:
- Имею возможность сделать что-то вроде этого:
Customer.CustomerAddress.OfType<MailingAddress>
, чтобы получить коллекцию почтовых адресов для клиента. - Иметь свойства
CurrentMailingAddress
и CurrentBillingAddress
, которые в будущем вернут один экземпляр CustomerAddress.OfType<>
с самыми высокими StartDate
и EndDate
. - Было бы также неплохочтобы взять
Address
через Zip
свойства и преобразовать эти свойства в сложный тип Address
.
Я попытался создать 2 унаследованных объекта из CustomerAddress
(предполагаяэто стратегия TPH (таблица на иерархию): MailingAddress
и BillingAddress
, CustomerAddressTypeId
- дискриминатор.Я сделал это в конструкторе моделей, и как только я попытался добавить вторую унаследованную сущность, он сказал мне, что свойства с этими именами уже существуют, и не позволил мне переименовать их в соответствии со свойствами первой сущности.
Есть идеи, как этого добиться?Пожалуйста, сделайте это для меня глупо :) Спасибо !!!