我的 .edmx 文件中有一个名为 Client 的实体。
我必须对其运行多个 linq 查询,但在所有查询上,我需要一个过滤器(假设 active=1)。
我不想有一个where c.active == 1
对于我的所有查询,我的实体应用了默认过滤器更有意义。这是可以做的事情吗?
或者也许我可以将查询作为实体而不是表的基础? (我采用数据库优先方法)
我知道另一个解决方案是在数据库上创建一个视图并将实体链接到该视图,但我也不希望这样做。
您可以向生成的数据库上下文添加其他方法:
partial class DatabaseContext // same name as your generated context
{
IQueryable<Client> ActiveClients { get { return Clients.Where(c => c.active == 1); } }
}
并在整个代码中使用它。由于它是分部类的一部分(在生成的上下文类之外的其他文件中定义),因此当您刷新架构时,它不会受到 codegen 工具的影响。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)