Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 包含和内存中列表的实体框架查询_Sql Server_Performance_Entity Framework_Linq - Fatal编程技术网

Sql server 包含和内存中列表的实体框架查询

Sql server 包含和内存中列表的实体框架查询,sql-server,performance,entity-framework,linq,Sql Server,Performance,Entity Framework,Linq,我使用的是实体框架,我有一个类似的查询: entitiesContainer.Entities.Where(e => inMemoryList.Contains(e.Field)) 它可以工作,但我有性能问题。我花了一些时间对此进行分析,性能下降似乎发生在应用程序中,而不是数据库中。显然,每次执行这个查询时都会编译它,我猜这是因为转换包含的方式 您知道如何避免每次编译查询吗 谢谢。每次都会编译查询,因为它必须生成一个IN。。。内存中列表中可能已更改的语句 过去,我解决了一个类似的性能问题

我使用的是实体框架,我有一个类似的查询:

entitiesContainer.Entities.Where(e => inMemoryList.Contains(e.Field))
它可以工作,但我有性能问题。我花了一些时间对此进行分析,性能下降似乎发生在应用程序中,而不是数据库中。显然,每次执行这个查询时都会编译它,我猜这是因为转换包含的方式

您知道如何避免每次编译查询吗


谢谢。

每次都会编译查询,因为它必须生成一个IN。。。内存中列表中可能已更改的语句


过去,我解决了一个类似的性能问题,将值列表作为参数传递给存储过程,并让存储过程返回正确的字段列表以映射为实体结果。

您遇到了什么样的性能问题?每次编译查询几乎肯定不会引起注意。你要传递的列表有多大?或的可能副本。我相信这更适合作为评论。