, 나는 SQL을 볼 수있는 엔티티 프레임 워크 생성 된 SQL 청소기는 다음과 같이 생성되는 만들 수있는 방법 :나는 프로파일 러를 사용하는 경우 나 SQL Server Express를 2008으로 엔티티 프레임 워크를 사용하고
SELECT
[Project1].[C1] AS [C1],
[Project1].[EmployeeID] AS [EmployeeID],
[Project1].[FirstName] AS [FirstName],
[Project1].[LastName] AS [LastName],
[Project1].[Active] AS [Active],
[Project1].[Updated] AS [Updated],
[Project1].[Created] AS [Created],
[Project1].[CreatedBy] AS [CreatedBy],
[Project1].[Modified] AS [Modified],
[Project1].[ModifiedBy] AS [ModifiedBy]
FROM (SELECT
[Extent1].[EmployeeID] AS [EmployeeID],
[Extent1].[FirstName] AS [FirstName],
[Extent1].[LastName] AS [LastName],
[Extent1].[Active] AS [Active],
[Extent1].[Updated] AS [Updated],
[Extent1].[Created] AS [Created],
[Extent1].[CreatedBy] AS [CreatedBy],
[Extent1].[Modified] AS [Modified],
[Extent1].[ModifiedBy] AS [ModifiedBy],
1 AS [C1]
FROM [dbo].[Employee] AS [Extent1]
) AS [Project1]
ORDER BY [Project1].[LastName] ASC
내가 부르는 것을 가지고 있습니까 하위 쿼리는 SQL Server 및/또는 내 응용 프로그램의 성능에 영향을 줍니까? 이 SQL 쿼리를 직접 작성하면 다음과 같이 보입니다.
SELECT
[Project1].[EmployeeID] AS [EmployeeID],
[Project1].[FirstName] AS [FirstName],
[Project1].[LastName] AS [LastName],
[Project1].[Active] AS [Active],
[Project1].[Updated] AS [Updated],
[Project1].[Created] AS [Created],
[Project1].[CreatedBy] AS [CreatedBy],
[Project1].[Modified] AS [Modified],
[Project1].[ModifiedBy] AS [ModifiedBy]
FROM [dbo].[Employee] AS [Project1]
ORDER BY [Project1].[LastName] ASC
이 클리너를 만드는 방법이 있습니까? 하위 쿼리가 만들어지는 이유는 무엇입니까? 내가 신경 써야 할까? LinqToEntities 사용하고 있습니다. 여기에 첫 번째 SQL 샘플을 생성하는 기능입니다 : 모든
public DTO.EmployeeDTO[] GetEmployees()
{
using (KDMEntities ctx = new KDMEntities())
{
var employees = (from e in ctx.Employees
orderby e.LastName
select new DTO.EmployeeDTO
{
EmployeeID = e.EmployeeID,
FirstName = e.FirstName,
LastName = e.LastName,
Active = e.Active,
Updated = e.Updated,
Created = e.Created,
CreatedBy = e.CreatedBy,
Modified = e.Modified,
ModifiedBy = e.ModifiedBy
}).ToArray();
return employees;
}
}
+1을 먼저 측정 한 다음 결정하십시오. 조기 최적화는 블랙홀입니다. –
나는 당신이하는 말에 동의하지 않지만 이것은 OP 질문에 답하지 않습니다. 내 생각에, 당신이 씬의 뒤에 무슨 일이 일어나고 있는지 알지 못한다면 이것은 잠재적 인 성능 악몽이다. 난 정확히 똑같은 문제에 부딪 혔고 EF가이 하위 쿼리를 만드는 것을 어떻게 막을 수 있는지 알고 싶습니다. – DMC