2010-06-10 4 views
0

이 쿼리를 실행하려고하는데 오류가 발생합니다. 저장소 표현식으로 변환 할 수 없습니다.Linq to Entities : 저장소 표현식으로 변환 할 수 없습니다.

내가 이런 식으로 할 수 없다면 어떻게 구현할 수 있습니까? C#을 사용하고 있습니다.

찍은 날짜가 올해가 아닌 경우 교육 기록을 표시하려고합니다. 모든 제안은 높이 평가됩니다.

tr = from l in t.Trainees 
     where !db.UserTrainings.Any(ut => ut.Trainees.TraineeId == l.TraineeId && 
             ut.Passed == true && 
             ut.DateTaken >= l.DateEnded.Value.AddYears(-1)) 
     ...... rest of the query. 

답변

1

이전에 EntityFunctions을 사용할 기회가 없었지만 문제를 해결하는 데 사용할 수 있다고 생각됩니다.

l.DateEnded.Value.AddYears(-1)EntityFunctions.AddYears(l.DateEnded, -1)으로 바꾸어보십시오. 이 방법은 on MSDN에 설명되어 있습니다.

+0

EntityFunctions는 어디에 있습니까 (.net 3.5를 사용하고 있습니다). 감사! – FM250

+0

아. NET 3.5에서 그렇게하는 방법을 모르겠습니다. 가능한 경우 업그레이드하는 것이 좋습니다 (EF, 특히 많은 개선 사항이 있음). –

관련 문제