在实体框架中扩展和自定义代码优先模型

时间:2014-12-12 04:55:27

标签: c# ef-code-first entity-framework-6

Here is an interesting article on extending and customizing code first models in EF. 就扩展插入对象而言,Rowan已经非常清楚了。

ModelCustomizer.RegisterModelCustomization(
    mb =>
    {
      mb.Entity<MyBizCustomer>();
    });

ModelCustomizer.RegisterTypeSubstitution<Customer, MyBizCustomer>();

var service = new CustomerService();
var customer = new MyBizCustomer { FirstName = "Jane", LastName = "Doe", IsVIP = true };
service.AddCustomer(customer);

现在,我的问题是,如果我想使用MyBizCustomer查询扩展模型,我该怎么做。 如果我想让所有客户都在IsVIP = true?

,我如何查询模型?

是否有更优雅的方式允许开发人员扩展现有模型,而不是使用一些键值对概念来实现动态字段?

1 个答案:

答案 0 :(得分:1)

您可以使用OfTYpe LINQ方法过滤到MyBizCustomers的实体,然后应用您的其他过滤器:

query.OfType<MyBizCustomer>().Where(c => c.IsVip)