1
"NOT IN"하위 쿼리를 제외하고 다음 SQL 쿼리를 LINQ로 변환했습니다.LINQ 쿼리에서 "NOT IN"을 사용하는 것이 좋습니다.
LINQ를 사용하여 이것을 구현하는 가장 효과적인 방법은 무엇입니까? 대신에 조인을 사용해야합니까?
누구든지 예제 나 지침을 제공 할 수 있다면 감사하게 생각합니다.
새로운 LINQ 쿼리 :
return from objOpenCalls in db.OpenItemss
from objTasks in db.Tasks
.Where(t => (t.Task_ID == objOpenCalls.Parent_Task_ID))
where ((objTasks.Item_ID > 0) && (objTasks.Type_ID > 0) && (objTasks.OwnerTypeItem_ID == user) && (objOpenCalls.CallEnd < DateTime.Now))
orderby objOpenCalls.CallStart descending
select new CallMiniViewModel
{
ID = objOpenCalls.ID,
CallStart = objOpenCalls.CallStart,
Name = objTasks.Task_Title
};
올드 SQL 쿼리 :
SELECT TOP (100) ta.ID, t.Task_Title, ta.CallStart
FROM OpenItems AS ta INNER JOIN
Tasks AS t ON ta.Parent_Task_ID = t.Task_ID
WHERE
(t.Item_ID > 0) AND (t.[Type_ID] > 0) AND (ta.CallStart > DATEADD(m, -6, GETDATE()))
AND (ta.ID NOT IN (SELECT CallId FROM CallFeedback)) AND (t.OwnerTypeItem_ID = @Username) AND (ta.CallEnd < GETDATE())
ORDER BY ta.CallStart DESC