我有3个表定义如下:
list(filter(lambda x: x['name']=='orange', fruits))
我首先使用EF数据库,对于每个类,我们都有一个从数据库中获取数据的视图(public Class Product
{
public long Key {get; set;}
public CountryKey {get; set;}
}
public Class ProductCountry
{
pullic long Key {get; set;}
public long ProductKey {get; set;}
public LocalProductKey {get; set;}
public long CountryKey {get; set;}
}
public Class Country
{
public long Key {get; set;}
public string Name {get; set;}
}
来获取产品)
我有一个过滤产品集合的方法取决于标准。
VW_Product
获取符合条件的所有产品;
现在我希望通过添加以下集合来连接filtred集合:
IQueryable<VW_Product> query1 = FilterQuery(Object criteria);
是另一种改进此查询的方法,因为它需要花费大量时间来执行。
答案 0 :(得分:0)
尝试在.ToList()
之后添加.Distinct()
以将键列表从ObjectQuery转换为内存中对象。在query2中,您针对'keys'ObjectQuery运行多个.Contains()
,可能每次都执行查询。
另外,我推测
var result = query1.Concat(query1);
应该是
var result = query1.Concat(query2);