방법: 정식 함수 호출
EntityFunctions 클래스에는 LINQ to Entities 쿼리에 사용할 정식 함수를 노출하는 메서드가 포함되어 있습니다. 정식 함수에 대한 자세한 내용은 정식 함수를 참조하세요.
참고 항목
AsUnicode 클래스의 AsNonUnicode 및 EntityFunctions 메서드에는 해당하는 정식 함수가 없습니다.
값 집합에 대한 계산을 수행하고 단일 값을 반환하는 정식 함수(집계 정식 함수라고도 함)는 직접 호출할 수 있습니다. 기타 정식 함수는 LINQ to Entities 쿼리의 일부로만 호출할 수 있습니다. 집계 함수를 직접 호출하려면 ObjectQuery<T>를 함수로 전달해야 합니다. 자세한 내용은 아래 두 번째 예제를 참조하세요.
LINQ to Entities 쿼리에서 CLR(공용 언어 런타임) 메서드를 사용하여 일부 정식 함수를 호출할 수 있습니다. canonical 함수에 매핑되는 CLR 메서드 목록은 CLR 메서드와 Canonical 함수 매핑을 참조하세요.
예 1
다음 예에서는 AdventureWorks 판매 모델을 사용합니다. 이 예제에서는 DiffDays 메서드를 사용하여 SellEndDate
와 SellStartDate
의 차이가 365일 미만인 제품을 모두 반환하는 LINQ to Entities 쿼리를 실행합니다.
using (AdventureWorksEntities AWEntities = new AdventureWorksEntities())
{
var products = from p in AWEntities.Products
where EntityFunctions.DiffDays(p.SellEndDate, p.SellStartDate) < 365
select p;
foreach (var product in products)
{
Console.WriteLine(product.ProductID);
}
}
Using AWEntities As New AdventureWorksEntities()
Dim products = From p In AWEntities.Products _
Where EntityFunctions.DiffDays(p.SellEndDate, p.SellStartDate) < 365 _
Select p
For Each product In products
Console.WriteLine(product.ProductID)
Next
End Using
예제 2
다음 예에서는 AdventureWorks 판매 모델을 사용합니다. 이 예제에서는 집계 StandardDeviation 메서드를 직접 호출하여 SalesOrderHeader
부분합의 표준 편차를 반환합니다. ObjectQuery<T>는 LINQ to Entities 쿼리에 포함되지 않고 호출되도록 지정하는 함수로 전달됩니다.
using (AdventureWorksEntities AWEntities = new AdventureWorksEntities())
{
double? stdDev = EntityFunctions.StandardDeviation(
from o in AWEntities.SalesOrderHeaders
select o.SubTotal);
Console.WriteLine(stdDev);
}
Using AWEntities As New AdventureWorksEntities()
Dim stdDev As Double? = EntityFunctions.StandardDeviation( _
From o In AWEntities.SalesOrderHeaders _
Select o.SubTotal)
Console.WriteLine(stdDev)
End Using