Ekspresi dalam LINQ ke Kueri Entitas
Ekspresi adalah fragmen kode yang dapat dievaluasi ke satu nilai, objek, metode, atau namespace layanan. Ekspresi dapat berisi nilai harfiah, panggilan metode, operator dan operand-nya, atau nama sederhana. Nama sederhana dapat berupa nama variabel, anggota jenis, parameter metode, namespace layanan, atau jenis. Ekspresi dapat menggunakan operator yang pada gilirannya menggunakan ekspresi lain sebagai parameter, atau pemanggilan metode yang parameternya adalah pemanggilan metode lain. Oleh karena itu, ekspresi dapat berkisar dari yang sederhana hingga yang sangat kompleks.
Dalam kueri LINQ ke Entitas, ekspresi dapat berisi apa pun yang diizinkan oleh jenis dalam namespace layanan System.Linq.Expressions, termasuk ekspresi lambda. Ekspresi yang dapat digunakan dalam kueri LINQ ke Entitas adalah superset ekspresi yang dapat digunakan untuk mengkueri Kerangka Kerja Entitas. Ekspresi yang merupakan bagian dari kueri terhadap Kerangka Kerja Entitas terbatas pada operasi yang didukung oleh ObjectQuery<T>
dan sumber data yang mendasarinya.
Dalam contoh berikut, perbandingan dalam klausul Where
adalah ekspresi:
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);
}
}
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
Catatan
Konstruksi bahasa tertentu, seperti C# unchecked
, tidak memiliki arti dalam LINQ ke Entitas.
Di Bagian Ini
Hubungan, properti navigasi, dan kunci asing