Ich möchte die Daten mit Eager-Laden mit Linq2SQL zu holen. Der Code ist ähnlich wie:Linq2SQl Eager laden mit mehreren DataLoadOptions
DataLoadOptions options = new DataLoadOptions();
options.LoadWith<Product>(c => c.ProductCompanies);
options.LoadWith<Product>(c => c.OrderDetails);
db.LoadOptions = options;
IEnumerable<Product> products = db.Products.ToList<Product>();
Ich überprüfe es generiert mehr als 1 SQL-Abfrage, wie ich erwartet habe. Tatsächlich wird nur mit den Product and OrderDetails geladen, und die ProductCompany wird nacheinander abgefragt. Habe ich hier etwas falsch gemacht? Oder ist es ein Linq2SQL-Problem? Haben wir einen Workaround?
Vielen Dank!
Update: Ich überprüfe die SQL von SQL Profiler. Ich fand, dass sowohl Leppie als auch Ian korrekt sind. Sie sind in einer Transaktion gebunden. Aber wenn ich es als Lazy Load eingestellt habe, hat es mehrere Verbindungen geöffnet.
Seien sie vorsichtig DataLoadOptions erstellt einige sehr ineffiziente Abfragen. –
Danke, Tschad! Ich werde in meinem nächsten Projekt nach Nhibernate zurückkehren: =) –