Nyelv
Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A helyi metódushívás az objektummodellben futtatott hívás. Egy távoli metódushívás az, amelyet a LINQ SQL-re fordít le, és végrehajtásra továbbítja az adatbázismotornak. Helyi metódushívásokra akkor van szükség, ha a LINQ az SQL-hez nem tudja lefordítani a hívást AZ SQL-be. Ellenkező esetben egy InvalidOperationException kivétel keletkezik.
1. példa
Az alábbi példában egy Order osztály a Northwind mintaadatbázis Rendelések táblájához van összerendelésre. Egy helyi példánymetódust adtak hozzá az osztályhoz.
Az 1. lekérdezésben a Order osztály konstruktorának helyi végrehajtását hajtja végre a rendszer. A 2. lekérdezésben, ha a LINQ to SQL megpróbálja LocalInstanceMethod()-t SQL-be lefordítani, a kísérlet sikertelen lesz, és InvalidOperationException kivétel keletkezik. Mivel azonban a LINQ to SQL támogatja a helyi metódushívásokat, a Query2 nem fog kivételt kivenni.
// 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