У меня есть сценарий с двумя разными приложениями, использующими одну и ту же базу данных. Для обоих приложений я использую Code First EF 4.1. Оба эти приложения имеют общую библиотеку. Все хорошо, пока я не начну добавлять специфическое наследование приложения. Например, скажем, у меня есть класс в общей библиотеке, подобный этому
public class Customer
{
public CustomerOrder Order;
}
И затем в одном приложении я наследую CustomerOrder, чтобы добавить некоторые пользовательские функции, необходимые для приложения.
public class EditableCustomerOrder: CustomerOrder
{
public void Edit() {};
}
В этом приложении я хочу, чтобы все мои заказы клиентов загружались как EditableCustomerOrders. Однако я не могу найти способ указать в сопоставлении, что он должен игнорировать CustomerOrder и только сопоставить EditableCustomerOrder с базовой таблицей.
Я пробовал это
modelBuilder.Ignore<CustomerOrder>();
но в нем отсутствует свойство Order от Customer, поэтому я не могу его использовать. Единственный способ заставить это работать - это использование обобщений, так что Customer использует универсальный для его типа CustomerOrder, а затем я внедряю Customer в приложение, чтобы указать, что он использует EditableCustomerOrder. Однако это решение может выйти из-под контроля довольно быстро, с универсальными повсеместно.
Возможно ли то, что я пытаюсь сделать? По сути, я пытаюсь сказать сущности, что, хотя есть базовый тип и расширенный тип, я хочу, чтобы он использовал только расширенный тип.