Учитывая, что у меня есть такой класс в моем Слой данных
public class GenericRepository<TEntity> where TEntity : class
{
public MyDataContext DataContext {get;set;}
[System.ComponentModel.DataObjectMethod(System.ComponentModel.DataObjectMethodType.Select)]
public IQueryable<TEntity> SelectAll()
{
return DataContext.GetTable<TEntity>();
}
}
Я мог бы запросить таблицу в моей базе данных, например, из более высокого уровня
using (GenericRepositry<MyTable> mytable = new GenericRepositry<MyTable>())
{
var myresult = from m in mytable.SelectAll()
where m.IsActive
select m;
}
это значительно медленнее, чем использование обычного кода в моем уровне данных
using (MyDataContext ctx = new MyDataContext())
{
var myresult = from m in ctx.MyTable
where m.IsActive
select m;
}
Устранение необходимости писать простые выборки таблиц в слое данных экономит много времени, но буду ли я сожалеть об этом?
Редактировать: @ Скит
Я на самом деле реализовал этот подход в довольно большом LOB-проекте WCF / Silverlight, и кажется, что процессоры наших серверов пытаются не отставать. Дополнительная работа по созданию / уничтожению дополнительных объектов не может быть объяснена ростом использования ЦП над проектами обычным способом?