Linq与团队合作的问题

时间:2017-08-11 11:25:54

标签: c# performance entity-framework linq

我有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);

是另一种改进此查询的方法,因为它需要花费大量时间来执行。

1 个答案:

答案 0 :(得分:0)

尝试在.ToList()之后添加.Distinct()以将键列表从ObjectQuery转换为内存中对象。在query2中,您针对'keys'ObjectQuery运行多个.Contains(),可能每次都执行查询。

另外,我推测

var result = query1.Concat(query1);

应该是

var result = query1.Concat(query2);