C# 如何在实体框架中使用查询避免计划缓存膨胀
我在这里发现了一个关于实体框架的相关问题——但答案解释为实体框架的常规行为 在LinqToEntities查询中,例如此查询:C# 如何在实体框架中使用查询避免计划缓存膨胀,c#,sql-server,entity-framework,C#,Sql Server,Entity Framework,我在这里发现了一个关于实体框架的相关问题——但答案解释为实体框架的常规行为 在LinqToEntities查询中,例如此查询: var query = (from x in ctx.bigProduct.AsNoTracking() where x.ListPrice == v select x); 实体框架使用不同的精度转换参数“v”。例如,在我的尝试中,有时翻译为十进制(2,2),有时翻译为
var query = (from x in ctx.bigProduct.AsNoTracking()
where x.ListPrice == v
select x);
实体框架使用不同的精度转换参数“v”。例如,在我的尝试中,有时翻译为十进制(2,2),有时翻译为十进制(5,2)
问题在于,参数类型的这种差异会导致重新编译查询,该查询可以从查询计划缓存中重用,这也会导致计划缓存膨胀
如何避免参数类型上的这种差异?临时查询设置将从SQL方面提供帮助,但不会回答问题(因此它是一个注释)☺ )Optimize for Ad Hoc Workloads=True。服务器范围选项。Ad Hoc查询设置将从SQL方面提供帮助,但不会回答问题(因此它是一个注释)☺ )为临时工作负载优化=True。服务器范围选项。