방금 LINQ에 대한 읽기를 시작했으며 저를 괴롭혔던 한 가지가 있습니다. LINQ는 LINQ 쿼리를 데이터베이스 서버에 해당 SQL 쿼리로 변환합니다. LINQ가 모든 코드를 SQL 문으로 변환 할 수 있을지 의심 스럽기 때문에 여기에 몇 가지 제한이 있다고 가정해야합니다.LINQ의 Where 절이 데이터베이스 쿼리의 where 절로 변환됩니다.
가능한 한 제한적으로 서버에 전송되는 쿼리를 가져 오려면 LINQ를 SQL로 변환하고 LINQ를 SQL로 변환 할 수없는 항목은 무엇입니까?
예를 들어 where employee.name == "Test"
은 변환하기가 매우 쉽지만, where isEven(employee.number)
은 어떨까요? 아니면 더 복잡한 무엇인가?
LINQ는 표현식 트리를 SQL로 변환하므로 메서드 호출이 예외를 throw하는 것을 알 수 있습니다. 메서드의 무작위로 복잡한 논리를 변환 할 수 없습니다. 즉, LINQ가 인식하고 쉽게 변환 할 수있는 .NET 함수가 내장되어 있습니다. –
@SimonWhitehead 고마워요, 그 말이 맞고 그 문제에 대한 제정신의 해결책처럼 들립니다. – confusopoly