대로 작동하지 않는 카운트, 생성 된 SQL이 카운트에서! = NULL 체크()을 c.val을 무시Linq에이 (조건) 다음 LINQ 쿼리에서 예상
from t1 in table1
join t2 in table2 on t1.col1 equals t2.col1
where t1.col1 = 123 && t3.Count(c => c.val != null && c.col1 == t1.col1) == 0
select new {t1.col1, t2.col2, t1.col2}
는
SELECT [t0].[col1], [t1].[col2], [t0].[col2]
FROM [t1] AS [t0]
INNER JOIN [t2] AS [t1] ON [t0].[col1] = [t1].[col1]
WHERE ([t0].[col1] = @p0) AND (((
SELECT COUNT(*)
FROM [t3] AS [t2]
WHERE [t2].[col1] = [t0].[col1]
)) = @p1)
변환됩니다 유일한
t.Count(c => c.ID != null && t.No > 10)
가
로 변환되어 다음 기록시 반면0
SELECT COUNT(*) AS [value]
FROM [t] AS [t0]
WHERE ([t0].[ID] IS NOT NULL) AND ([t0].[No] > @p0)
여기서 c.ID! = null 검사를 건너 뛰지 않습니다. 이 문제가 발생하는 이유는 무엇입니까? where 절에서 Count 사용에 대한 제한이 있습니까?
아마도 id는 null 가능하지만 val은 그렇지 않습니다. – sgmoore
맞아요! 나는 그것을 놓쳤다. 감사! – Ali