В свете недавних (экстремальных) проблем с производительностью SubSonic 3 мы собираемся перенести ORM, желательно переписать как можно меньше кода (в основном это Linq).
Итак, я смотрю на BLToolkit. Одно из основных различий между SubSonic и BLToolkit, которое я вижу, заключается в том, что BLToolkit всегда требует оператора using
. Например:
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);
}
}
}
Что именно это делает? Когда вы создаете новый экземпляр базы данных, она создает новое соединение? Было бы разумно "обернуть" это в статический класс, чтобы я мог сделать это из любого места var q=from e in Database.Employee ...
? Какие последствия это может иметь в контексте веб-приложения?