За последние несколько месяцев я много узнал о Linq-To-Entities и 3-уровневой архитектуре с DAO / DAL / Repository.Теперь у меня в голове есть несколько вещей, которые продолжают беспокоить меня.У меня есть три вопроса, которые вы увидите ниже.
Существует множество способов заставить хранилище работать, но каким образом можно «заставить» работать хранилище с точки зрения производительности.
1) Инициализировать текст данных в конструкторе
public class Repository : IRepository
{
private Datacontext context;
public Repository()
{
context = new Datacontext();
}
public IList<Entity> GetEntities()
{
return (from e in context.Entity
select e).ToList();
}
}
2) Использовать «Использование»
public class Repository : IRepository
{
public IList<Entity> GetEntities()
{
using (Datacontext context = new Datacontext())
{
return (from e in context.Entity
select e).ToList();
}
}
}
3) По-другому (пожалуйста, прокомментируйте)
Я оставлю здесь ваше предложение, чтобы другие могли прокомментировать
Также, кажется, некоторые люди говорятрепозиторий должен возвращать IQueryable для бизнес-уровня, в то время как другие говорят, что лучше возвращать IList.Каково ваше мнение по этому поводу?
Приведенные выше примеры кода в первом вопросе указывают на хранилище, но как лучше всего реализовать хранилище на бизнес-уровне (инициализируйте в конструкторе, используйте "Используя "??)