【发布时间】:2014-12-03 17:29:02
【问题描述】:
LINQ to SQL 始终将值转换为输出中的查询参数。例如:
someTable.Where(n => n.Field == 5);
产生:
WHERE Field = @p0
这会导致某些查询优化方案出现问题。有没有办法强制在生成的 SQL 中内联值,使其变为:
WHERE Field = 5
? LINQ to Entities 会提供一种方式还是表现相同?
【问题讨论】:
-
那些“场景”是什么?
-
@ErikEJ 在我的一个由 LINQ to SQL 生成的查询中,使用参数比使用内联值慢 10 倍。由于查询优化器的工作方式,这是有道理的。我不是在寻找优化我的查询本身,而是试图解决更广泛的“不必要的参数化”问题,这根本没有任何意义。
-
This question 提供了一些背景信息。
-
我知道这是一个 2 年多的问题......但问了同样的问题。 stackoverflow.com/questions/44709877/…
标签: linq-to-sql linq-to-entities