다음을 통해 공유


방법: 사용자 정의 함수 인라인 호출

사용자 정의 함수를 인라인으로 호출할 수 있지만 실행이 지연된 쿼리에 포함된 함수는 쿼리가 실행될 때까지 실행되지 않습니다. 자세한 내용은 LINQ 쿼리 소개(C#)를 참조하세요.

쿼리 외부에 있는 동일한 함수를 호출할 경우 LINQ to SQL에서는 메서드 호출 식에서 단순한 쿼리를 만듭니다. 다음은 전달된 상수에 매개 변수 @p0가 바인딩되는 SQL 구문입니다.

SELECT dbo.ReverseCustName(@p0)  

LINQ to SQL은 다음을 만듭니다.

string str = db.ReverseCustName("LINQ to SQL");
Dim str As String = db.ReverseCustName("LINQ to SQL")

예시

다음 LINQ to SQL 쿼리에서 생성된 사용자 정의 함수 메서드 ReverseCustName에 대한 인라인 호출을 볼 수 있습니다. 쿼리 실행이 지연되었기에 함수는 즉시 실행되지 않습니다. 이 쿼리에 대해 빌드된 SQL은 데이터베이스에서 사용자 정의 함수에 대한 호출로 변환됩니다. 다음 쿼리의 SQL 코드를 참조하세요.

var custQuery =
    from cust in db.Customers
    select new {cust.ContactName, Title =
        db.ReverseCustName(cust.ContactTitle)};
Dim custQuery = _
    From cust In db.Customers _
    Select cust.ContactName, Title = _
    db.ReverseCustName(cust.ContactTitle)
SELECT [t0].[ContactName],  
    dbo.ReverseCustName([t0].[ContactTitle]) AS [Title]  
FROM [Customers] AS [t0]  

참고 항목