English 中文(简体)
Entity Framework and SQL Server 2012 Paging
原标题:

SQL Server 2012 introduces a more efficient mechanism for paging using FETCH and OFFSET which could have a big impact on performance of apps which use a lot of paging. Does Entity Framework 5 support this? So if Im using EF to page using Take + Skip will the LINQ queries be translated into the new 2012 TSQL if EF is targeting SQL Server 2012?

最佳回答

EF 5 doesn t support this feature - actually I think none of SQL Serve 2012 features is available in EF. You can vote for this feature on Data UserVoice to move it up in ADO.NET team product backlog.

问题回答

As @Ladislav said, EF 5 doesn t support OFFSET & FETCH. With that said, I wanted to add a bit of perspective. I don t think it should matter much.

When you buy into an ORM like Entity Framework, you re out sourcing your query generation (for perfectly valid reasons). Whether EF uses the older CTE style query with Row_Number() or the newer Fetch / Offset is an implementation detail. Microsoft could update the EF code at any point and change the query generation to use one or the other.

If you want control over the query generation, you either:

  • Use EF s stored procedure mapping ability
  • Use stored procedures directly with EF (something I do quite often)
  • write the ADO/SQL yourself, or
  • use a more limited micro-orm like massive/PetaPoco

So does it matter?

Well, to a developer writing queries the new syntax is going to be a welcome relief. On the other hand, it doesn t appear that there is a real performance difference between the old CTE method and the new syntax. So from EF s perspective -- not really. We incur a significant overhead using EF, the method of paging probably won t be your break point.





相关问题
Entity Framework with MySQL connector in c#

I have been trying to get the Entity Framework to work in my web application using MySQL. It works fine on my local pc, but doesn t work when I put it on the server. Since the server is a shared ...

How Do I Create And Update A Many To Many Relationship With EF

I am using the Entity Framework with SQL Server. I have a many to many relationship between 2 tables. I have created a join table with just the primary key fields of the 2 tables. In the designer, the ...

Entity Framework with File-Based Database

I am in the process of developing a desktop application that needs a database. The application is currently targeted to SQL Express 2005 and works wonderfully. However, I m not crazy about having ...

Linq to enties, insert foreign keys

I am using the ADO entity framework for the first time and am not sure of the best way of inserting db recored that contain foreign keys. this is the code that i am using, I would appreciate any ...

Entity Framework - Many to many question

I have a table called ASB and a table called PeopleInvolved. There is a junction table called PeopleInvolved_ASB which simply contains an ASBID and a PeopleInvolvedID column. The columns act as a ...

Post back complex object from client side

I m using ASP.NET MVC and Entity Framework. I m going to pass a complex entity to the client side and allow the user to modify it, and post it back to the controller. But I don t know how to do that ...

ADO.NET Entity Data Model are not precise enough

I run this code: var cos = from k in _db.klienci_do_trasy where k.klient_id == 5 select k; but the query send to database is: SELECT * FROM `klienci_do_trasy` LIMIT 0, 30 why is it for, there ...

热门标签