다음을 통해 공유


방법: 형식을 제네릭 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;
}

참고 항목

기타 리소스

쿼리 예제(LINQ to SQL)