Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Yerel yöntem çağrısı, nesne modeli içinde yürütülen bir çağrıdır. Uzak yöntem çağrısı, LINQ to SQL'in SQL'e çevirdiği ve yürütülmek üzere veritabanı altyapısına ilettiği çağrıdır. LINQ to SQL çağrısını SQL'e çeviremediğinde yerel yöntem çağrıları gereklidir. Aksi takdirde, bir InvalidOperationException atılır.
Örnek 1
Aşağıdaki örnekte, bir Order sınıf Northwind örnek veritabanındaki Orders tablosuna eşlenir. Sınıfına yerel bir örnek yöntemi eklendi.
Sorgu 1'de, sınıfın Order oluşturucu yerel olarak yürütülür. Sorgu 2'de LINQ to SQL, SQL'e çevirmeye LocalInstanceMethod()çalışırsa, deneme başarısız olur ve bir InvalidOperationException özel durum oluşturulur. Ancak LINQ to SQL yerel yöntem çağrıları için destek sağladığından, Query2 özel durum oluşturmaz.
// Query 1.
var q1 =
from ord in db.Orders
where ord.EmployeeID == 9
select ord;
foreach (var ordObj in q1)
{
Console.WriteLine("{0}, {1}", ordObj.OrderID,
ordObj.ShipVia.Value);
}
' Query 1.
Dim q0 = _
From ord In db.Orders _
Where ord.EmployeeID = 9 _
Select ord
For Each ordObj In q0
Console.WriteLine("{0}, {1}", ordObj.OrderID, _
ordObj.ShipVia.Value)
Next
// Query 2.
public int LocalInstanceMethod(int x)
{
return x + 1;
}
void q2()
{
var q2 =
from ord in db.Orders
where ord.EmployeeID == 9
select new
{
member0 = ord.OrderID,
member1 = ord.LocalInstanceMethod(ord.ShipVia.Value)
};
}
' Query 2.
Public Function LocalInstanceMethod(ByVal x As Integer) As Integer
Return x + 1
End Function
Sub q2()
Dim db As New Northwnd("")
Dim q2 = _
From ord In db.Orders _
Where ord.EmployeeID = 9 _
Select member0 = ord.OrderID, member1 = ord.LocalInstanceMethod(ord.ShipVia.Value)
End Sub