오류: EntityFramework를 사용할 때 "문 본문이 있는 람다 식을 식 트리로 변환할 수 없습니다."
EntityFramework의 Select 메서드를 사용할 때 , "문 본문이 있는 람다 식을 식 트리로 변환할 수 없습니다."라는 오류가 발생할 수 있습니다. 이 오류는 제공한 람다 표현식에 단순 표현식 대신 명령문 본문이 포함된 경우에 자주 발생합니다.
오류 이해하기:
제공된 코드 조각에서:
Obj[] myArray = objects.Select(o => { var someLocalVar = o.someVar; return new Obj() { Var1 = someLocalVar, Var2 = o.var2 }; });
람다 식은 명령문 본문을 사용하여 인스턴스를 반환하기 전에 someLocalVar 지역 변수를 선언하고 사용합니다. 객체 그러나 EntityFramework는 효율적인 데이터베이스 실행을 위해 SQL로 직접 변환될 수 있는 간단한 표현식을 기대합니다.
해결책:
이 오류를 해결하려면 명령문 본문 및 값을 직접 할당:
Arr[] myArray = objects.Select(o => new Obj() { Var1 = o.someVar, Var2 = o.var2 });
이 수정을 통해 람다 표현식에는 다음을 수행할 수 있는 간단한 표현식만 포함됩니다. 표현식 트리로 변환되고 코드가 성공적으로 컴파일됩니다.
위 내용은 Entity Framework에서 '문 본문이 있는 람다 식을 식 트리로 변환할 수 없습니다.'가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!