Procedura: disattivare il caricamento posticipato (LINQ to SQL)
È possibile disattivare il caricamento posticipato impostando DeferredLoadingEnabled su false. Per ulteriori informazioni, vedere Caricamento rinviato e immediato (LINQ to SQL).
Nota |
---|
Il caricamento posticipato viene disattivato implicitamente quando è disattivato il rilevamento degli oggetti.Per ulteriori informazioni, vedere Procedura: recuperare le informazioni in sola lettura (LINQ to SQL). |
Esempio
Nell'esempio seguente viene descritto come disattivare il caricamento posticipato impostando DeferredLoadingEnabled su false.
Dim db As New Northwnd("c:\northwnd.mdf")
db.DeferredLoadingEnabled = False
Dim ds As New DataLoadOptions()
ds.LoadWith(Function(c As Customer) c.Orders)
ds.LoadWith(Of Order)(Function(o) o.OrderDetails)
db.LoadOptions = ds
Dim custQuery = From cust In db.Customers _
Where cust.City = "London" _
Select cust
For Each custObj In custQuery
Console.WriteLine("Customer ID: {0}", custObj.CustomerID)
For Each ord In custObj.Orders
Console.WriteLine(vbTab & "Order ID: {0}", ord.OrderID)
For Each detail In ord.OrderDetails
Console.WriteLine(vbTab & vbTab & "Product ID: {0}", _
detail.ProductID)
Next
Next
Next
Northwnd db = new Northwnd(@"c:\northwnd.mdf");
db.DeferredLoadingEnabled = false;
DataLoadOptions ds = new DataLoadOptions();
ds.LoadWith<Customer>(c => c.Orders);
ds.LoadWith<Order>(o => o.OrderDetails);
db.LoadOptions = ds;
var custQuery =
from cust in db.Customers
where cust.City == "London"
select cust;
foreach (Customer custObj in custQuery)
{
Console.WriteLine("Customer ID: {0}", custObj.CustomerID);
foreach (Order ord in custObj.Orders)
{
Console.WriteLine("\tOrder ID: {0}", ord.OrderID);
foreach (OrderDetail detail in ord.OrderDetails)
{
Console.WriteLine("\t\tProduct ID: {0}", detail.ProductID);
}
}
}