나는 데이터가 얼마나 많은 변화를 겪어야하는지가 문제라고 생각한다. 당신이 뭘 하려는지, 나는 가장 효율적이 될 것이라고 생각 :
return db.tblUserAlerts.Count(c=>c.userID == UserID && !c.hasRead);
단지 물건을 계산, 당신이 정말로 단 한 방법으로 데이터를 실행하고 복사되지 않았거나 데이터를 변환하기 때문에 그 술어와 일치합니다.
EDIT : 내가 태그를 다시보고 linq-to-sql이 있는지 확인하십시오. LINQ to SQL과 같은 쿼리 공급자를 사용하는 경우 쿼리가 변환됩니다. LINQ - 투 - SQL은 더 많은 일을해야 할 수도 있습니다 것을 제외하고, 어떠한 속도 차이가 안이 경우
SELECT count(c.ID) FROM tblUserAlerts WHERE c.userID == 'UserID' AND NOT c.hasRead
: 나는 LINQ - 투 - SQL 쿼리 번역기가 같은 것으로 해석 할 거라 생각 표현식 트리에 더 많은 것이 있기 때문에 쿼리를 번역 할 때. 그 속도 차이는 거의 무시할 수있을 것입니다. 위의 원래 대답은 LINQ-to-Objects에 더 적용 가능합니다. LINQ-to-SQL을 사용하는 경우 속도 저하에 민감하지 않으면 (즉, 긴밀한 루프에서 수천 번 실행하는 경우) 대략적으로 동일해야합니다.
'return db.tblUserAlerts.Count (c => c.userID == UserID &&! c.hasRead)'대신 Linq가 정보에 입각 한 선택을 할 수 있습니다.:) – bzlm
@Bzlm 좋은 생각인데 위와 같이 쓰는 것을 선호합니다 –
환경 설정이 여러분을 되찾고 있습니다. 그들을 놓아 줘. – bzlm