LINQ to Entities クエリ内の式
式は、単一の値、オブジェクト、メソッド、または名前空間として評価されるコード フラグメントです。 式には、リテラル値、メソッド呼び出し、演算子とそのオペランド、または単純な名前を含めることができます。 単純な名前には、変数、型メンバー、メソッド パラメーター、名前空間、または型の名前を指定できます。 式では、他の式をパラメーターとして使用する演算子、またはパラメーターが他のメソッド呼び出しであるメソッド呼び出しを使用できます。 したがって、単純な式だけでなく、非常に複雑な式も作成できます。
LINQ to Entities クエリの式には、ラムダ式など、System.Linq.Expressions 名前空間内の型で許容されている要素であれば何でも使用できます。 LINQ to Entities クエリで使用可能な式は、Entity Framework に対してクエリを実行するために使用可能な式のスーパーセットです。 Entity Framework に対するクエリの一部である式は、ObjectQuery<T> および基になるデータ ソースでサポートされている演算に制限されます。
次の例では、Where 句で使用される比較の式を示します。
Dim totalDue = 200
Using context As New AdventureWorksEntities()
Dim salesInfo = _
From s In context.SalesOrderHeaders _
Where s.TotalDue >= totalDue _
Select s.SalesOrderID
Console.WriteLine("Sales order info:")
For Each orderNumber As Integer In salesInfo
Console.WriteLine("Order number: " & orderNumber)
Next
End Using
Decimal totalDue = 200;
using (AdventureWorksEntities context = new AdventureWorksEntities())
{
IQueryable<int> salesInfo =
from s in context.SalesOrderHeaders
where s.TotalDue >= totalDue
select s.SalesOrderID;
Console.WriteLine("Sales order info:");
foreach (int orderNumber in salesInfo)
{
Console.WriteLine("Order number: " + orderNumber);
}
}
![]() |
---|
C# の unchecked などの特殊な言語構造は、LINQ to Entities では意味がありません。 |