Я всегда использовал шаблон репозитория, но для моего последнего проекта я хотел посмотреть, могу ли я улучшить его использование и мою реализацию "Единицы работы". Чем больше я начал копать, я начал задавать себе вопрос: "Нужно ли мне это действительно?"
Теперь все начинается с нескольких комментариев на Stackoverflow со следом за сообщением Айенде Рахиен в его блоге с двумя конкретными,
Об этом, вероятно, можно было бы говорить вечно и всегда, и это зависит от разных приложений. Что мне нравится,
- будет ли этот подход подходящим для проекта Entity Framework?
- Используя этот подход, бизнес-логика все еще идет на уровне службы или методы расширения (как объясняется ниже, я знаю, метод расширения использует сеанс NHib)?
Это легко сделать с помощью методов расширения. Чистое, простое и многоразовое.
public static IEnumerable GetAll(
this ISession instance, Expression<Func<T, bool>> where) where T : class
{
return instance.QueryOver().Where(where).List();
}
Используя этот подход и Ninject
как DI, мне нужно сделать интерфейс Context
a и ввести его в мои контроллеры?