Entity Framework 4에 의해 생성 된 수 쿼리 문 이전 페이징 SQL 문 오늘, 생성 하 고 LINQ to SQL 되지 않는 문제가 발견 되었습니다.
>>>을 볼!
에 코드:
생성 된 SQL 문을 보십시오.
1입니다. SQL 엔터티 프레임 워크에 의해 생성 된:
한 가기, 3입니다.
2. LINQ to SQL 생성 sql:
2에서 아무 가기입니다.
둘 사이의 갭은 분명 하다.
>>> 한 번 더 봐:
일정, 어디 어디에 위의 코드에서 쿼리 조건을 변경 코더 = > 코더. 연령 > 20), 아래 그림 참조:
그런 다음 생성 된 SQL을 봐.
1입니다. SQL 엔터티 프레임 워크에 의해 생성 된:
그것은 분명 동일한 (색상), 하지만 그것은 실제로 단지 몇 exec sp_executesql 성능 영향을 미칠 것입니다 (sp_executesql 지 사용 캐시 좀 더 성능, 문제는 여기 있다).
2. LINQ to SQL 앞으로 같은 SQL을 생성합니다.
엔터티 프레임 워크 여러 데이터베이스 지원 고려, 저장 프로시저 지원 하지만이 무시 합니다.
DataContext의 LINQ to SQL 엔터티 프레임 워크의 Ado.net 엔터티 프레임 워크 기능 CTP5, ObjectContext에에서 DbContext 또한 해결 되지 않았습니다 문제는 마이크로소프트의 생각 조금 지저분한 느낌.
두 가지 선택이 있다 이제는 성능에 대 한 관심과 엔터티 프레임 워크 4를 사용 하는 경우,: 1. 엔터티에; 자신의 SQL 또는 LINQ 없이 저장된 프로시저 작성 2. SQL Server에 대 한 자신의 엔터티 프레임 워크 ado.net 공급자를 작성 합니다.
업데이트: 실행 계획에서 엔터티 프레임 워크에 의해 생성 된 SQL 성능에 작은 영향을 나타납니다.
추가:
두 개의 SQL 실행 계획 비교:
엔터티 프레임 워크에서 생성 된 SQL:
b는 SQL LINQ to SQL에 의해 생성 된: