【发布时间】:2017-03-19 10:18:15
【问题描述】:
我有以下(通用)查询:
var listOfPossibleCars= new List<string>();
var listOfCars = db.Cars.Where(s => listOfPossibleCars.Contains(s.CarName)).ToList();
但listOfPossibleCars 很大,任何包含数十万条记录。此查询导致延迟,我想知道如何改进它。
【问题讨论】:
-
listOfPossibleCars 总是一样的,还是经常变化(每次调用)?
-
@Evk 每次都不一样,而且每次都很大
-
整个 Cars 表有多大?将它带入内存是否可行?否则,我建议您使用 SqlBulkIncert 进入的临时表,然后像@Evik 回答的那样进行连接,不过,我建议您使用 2 个表,1 个带有查询 ID,然后将其插入到 Filter 表中(int FilterID,varchar 值)。因此,您可以唯一地识别每个过滤器,而无需锁定它,以免有人尝试同时更新它
-
@MichalCiechan 数百万行,所以不幸的是内存不是一个选项。
标签: c# .net entity-framework linq