제네릭 IEnumerable로 형식 변환
AsEnumerable을 사용하여 제네릭 IEnumerable
로 형식화된 인수를 반환합니다.
예시
이 예제에서는 기본 제네릭 Query
를 사용하여 LINQ to SQL에서 쿼리를 SQL로 변환하여 해당 쿼리를 서버에서 실행합니다. 그러나 where
절에서는 SQL로 변환할 수 없는 사용자 정의 클라이언트측 메서드(isValidProduct
)를 참조합니다.
이 솔루션에서는 IEnumerable<T>의 클라이언트측 제네릭 where
구현을 지정하여 제네릭 IQueryable<T>을 대체합니다. 이 작업은 AsEnumerable 연산자를 호출하여 수행합니다.
private bool isValidProduct(Product prod)
{
return prod.ProductName.LastIndexOf('C') == 0;
}
void ConvertToIEnumerable()
{
Northwnd db = new Northwnd(@"c:\test\northwnd.mdf");
Program pg = new Program();
var prodQuery =
from prod in db.Products.AsEnumerable()
where isValidProduct(prod)
select prod;
}
Private Function isValidProduct(ByVal prod As Product) As Boolean
Return prod.ProductName.LastIndexOf("C") = 0
End Function
Sub ConvertToIEnumerable()
Dim db As New Northwnd("c:\northwnd.mdf")
Dim validProdQuery = _
From prod In db.Products.AsEnumerable _
Where isValidProduct(prod) _
Select prod
End Sub