SQL Server 2012引入了一种更有效的使用FETCH和OFFSET进行分页的机制,这可能会对使用大量分页的应用程序的性能产生很大影响。 Entity Framework 5是否支持此功能? 因此,如果我使用EF进行页面使用Take + Skip,如果EF针对SQL Server 2012,LINQ查询将转换为新的2012 TSQL吗?
答案 0 :(得分:11)
正如@Ladislav所说,EF 5不支持OFFSET&取。话虽如此,我想补充一点观点。我认为这不重要。
当您购买像Entity Framework这样的ORM时,您需要获取查询生成(出于完全正当的理由)。 EF是否使用{较早的'CTE
样式查询与Row_Number()
或较新的Fetch
/ Offset
是一个实现细节。 Microsoft可以随时更新EF代码,并将查询生成更改为使用其中一个。
如果要控制查询生成,可以:
那重要吗?
好吧,对于编写查询的开发人员来说,新语法将会受到欢迎。另一方面,doesn't appear有一个真正的performance difference between旧CTE方法和新语法。所以从EF的角度来看 - 不是真的。我们使用EF招致significant overhead,寻呼方法可能不是你的断点。
答案 1 :(得分:9)
EF 5不支持此功能 - 实际上我认为EF中没有SQL Serve 2012功能。您可以在Data UserVoice上投票支持此功能,以便在ADO.NET团队产品待办事项中将其移动。