C# 如何在实体框架中使用查询避免计划缓存膨胀

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),有时翻译为

我在这里发现了一个关于实体框架的相关问题——但答案解释为实体框架的常规行为

在LinqToEntities查询中,例如此查询:

        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。服务器范围选项。