Oharra
Orrialde honetara sartzeak baimena behar du. Saioa hasteko edo direktorioak aldatzen saia zaitezke.
Orrialde honetara sartzeak baimena behar du. Direktorioak aldatzen saia zaitezke.
Una llamada al método local es una que se ejecuta dentro del modelo de objetos. Una llamada a método remoto es aquella que LINQ to SQL traduce a SQL y transmite al motor de base de datos para su ejecución. Las llamadas de método local son necesarias cuando LINQ to SQL no puede traducir la llamada a SQL. De lo contrario, se produce una excepción InvalidOperationException.
Ejemplo 1
En el ejemplo siguiente, la clase Order se mapea a la tabla Orders de la base de datos de ejemplo Northwind. Se ha agregado un método de instancia local a la clase .
En la consulta 1, el constructor de la Order clase se ejecuta localmente. En la consulta 2, si LINQ to SQL intentó traducirse LocalInstanceMethod()en SQL, se produciría un error en el intento y se produciría una InvalidOperationException excepción. Pero dado que LINQ to SQL proporciona compatibilidad con llamadas a métodos locales, Query2 no producirá una excepción.
// 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