[英]Using same query for different DbSets in Entity Framework
我对同一数据库表有两个不同的视图,并且我想对两个视图使用相同的查询。
我现在有以下丑陋的解决方案,其中我基本上有查询的副本。
DbSet<uvw_MyView1> view1 = entities.uvw_MyView1;
DbSet<uvw_MyView2> view2 = entities.uvw_MyView2;
if(doQueryOnView1)
{
// huge query
view1.Where(jada jada)
}
else
{
// huge query copied here with exception of different DbSet
view2.Where(jada jada)
}
我想拥有的是更优雅的解决方案。 基本上,我想对按列方式完全相同的两个DbSet具有相同的查询部分,但是它们返回不同的行。 有任何想法吗?
添加包含视图的所有属性的接口,并通过两个视图实体实现此接口。 在包含整个查询的create方法之后:
public static IQueryable<T> YourHugeQueryMethod<T>(DbContext context, ...)
where T : class, IView, new()
{
DbSet<T> set = context.Set<T>();
return set.Where(...);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.