Sed*_*glu 7 linq-to-entities linq-to-sql
LINQ to SQL始终将值转换为输出中的查询参数.例如:
someTable.Where(n => n.Field == 5);
Run Code Online (Sandbox Code Playgroud)
生产:
WHERE Field = @p0
Run Code Online (Sandbox Code Playgroud)
这会导致某些查询优化方案出现问题.有没有办法强制在生成的SQL中内联值,以便它变为:
WHERE Field = 5
Run Code Online (Sandbox Code Playgroud)
?LINQ to Entities会提供一种方式还是它的行为相同?
正如实体框架团队的 Diego Vega 在 Twitter 上提到的:
实际上,常量在 EF 中已永远翻译为内联常量。
所以看来 EF 是可行的方法,但有一个问题:
我们认为 EF7 应该进行更多参数化,因此我们需要了解这对您不利的情况
至少在这方面 EF6 比 LINQ to SQL 好得多,因此我们可以使用 EF。
| 归档时间: |
|
| 查看次数: |
345 次 |
| 最近记录: |