방법: 형식을 제네릭 IEnumerable로 변환(LINQ to SQL)
업데이트: November 2007
AsEnumerable<TSource>을 사용하여 제네릭 IEnumerable로 형식화된 인수를 반환합니다.
예제
이 예제에서는 기본 제네릭 Query를 사용하여 LINQ to SQL에서 쿼리를 SQL로 변환하여 해당 쿼리를 서버에서 실행합니다. 그러나 where 절에서는 SQL로 변환할 수 없는 사용자 정의 클라이언트측 메서드(isValidProduct)를 참조합니다.
이 솔루션에서는 where의 클라이언트측 제네릭 IEnumerable<T> 구현을 지정하여 제네릭 IQueryable<T>을 대체합니다. 이 작업은 AsEnumerable<TSource> 연산자를 호출하여 수행합니다.
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
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;
}