Angesichts der jüngsten (extremen) Performance-Probleme mit SubSonic 3 wollen wir ORMs migrieren und vorzugsweise so wenig Code wie möglich neu schreiben (der größtenteils aus Linq besteht).
Ich schaue mir also BLToolkit an. Einer der Hauptunterschiede, den ich zwischen SubSonic und BLToolkit sehe, ist, dass BLToolkit immer eine using
Erklärung. Zum Beispiel:
static void SingleTableTest()
{
using (var db = new NorthwindDB()) //This
{
var query =
from e in db.Employee
where e.EmployeeID > 5
orderby e.LastName, e.FirstName
select e;
foreach (var employee in query)
{
Console.WriteLine("{0} {1}, {2}", employee.EmployeeID, employee.LastName, employee.FirstName);
}
}
}
Was genau wird damit erreicht? Wenn Sie eine neue Instanz der Datenbank erstellen, wird dann eine neue Verbindung erstellt? Wäre es sinnvoll, dies in eine statische Klasse zu "verpacken", so dass ich von überall aus Folgendes tun könnte var q=from e in Database.Employee ...
? Welche Auswirkungen hätte dies im Zusammenhang mit einer Webanwendung?