在实体框架中扩展和自定义代码优先模型
本文关键字:代码 模型 自定义 实体 框架 扩展 | 更新日期: 2023-09-27 18:34:05
这是一篇关于在 EF 中扩展和自定义代码优先模型的有趣文章。至于扩展插入对象,罗文已经说得很清楚了。
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 的所有客户,如何查询模型?
有没有更优雅的方法允许开发人员扩展现有模型,而不是使用一些键值对概念来实现动态字段?
可以使用 OfTYpe LINQ 方法筛选为 MyBizCustomer 的实体,然后应用其他筛选器:
query.OfType<MyBizCustomer>().Where(c => c.IsVip)