我已经有了两个不同应用程序共享相同数据库的方案。对于这两个应用程序,我使用Code First EF 4.1。这两个应用程序也共享一个公共库。一切都很好,直到我开始添加应用程序特定的继承。例如,假设我在共享库一类这样的代码优先EF 4.1在多个应用程序中的继承
public class Customer
{
public CustomerOrder Order;
}
,然后在一个应用程序,我继承CustomerOrder添加应用程序所需的一些定制功能。
public class EditableCustomerOrder: CustomerOrder
{
public void Edit() {};
}
在此应用中,我想我所有的CustomerOrders的加载作为EditableCustomerOrders。但是,我找不到在映射中指定应忽略CustomerOrder并仅将EditableCustomerOrder映射到基础表的方法。
我想这
modelBuilder.Ignore<CustomerOrder>();
,但省略了从客户订单的财产,所以我不能使用它。我得到这个工作的唯一方法是使用泛型,以便Customer为其CustomerOrder类型使用泛型,然后在应用程序中实现Customer以指定它使用EditableCustomerOrder。然而,这种解决方案可能会非常迅速地发展,随处可见泛型。
是我想要做的可能吗?基本上我试图告诉实体,即使有基类型和扩展类型,我希望它只使用扩展类型。