Я разрабатываю приложение, используя asp.net mvc, NHibernate и DDD. У меня есть уровень сервиса, который используется контроллерами моего приложения. Все используют Unity для инъекций зависимостей (ISessionFactory в репозиториях, хранилищах в сервисах и службах в контроллерах) и отлично работает.Service Layer повторяют мои репозитории
Но, очень часто мне нужен метод в обслуживании, чтобы получить только объект в моем хранилище, как это (в классе обслуживания):
public class ProductService {
private readonly IUnitOfWork _uow;
private readonly IProductRepository _productRepository;
public ProductService(IUnitOfWork unitOfWork, IProductRepository productRepository) {
this._uow = unitOfWork;
this._productRepository = productRepository;
}
/* this method should be exists in DDD ??? It's very common */
public Domain.Product Get(long key) {
return _productRepository.Get(key);
}
/* other common method... is correct by DDD ? */
public bool Delete(long key) {
usign (var tx = _uow.BeginTransaction()) {
try
{
_productRepository.Delete(key);
tx.Commit();
return true;
} catch {
tx.RollBack();
return false;
}
}
}
/* ... others methods ... */
}
Этот код является правильным ДДД? Для каждого класса службы у меня есть репозиторий, и для каждого класса службы мне нужен метод «Получить» для объекта?
Спасибо, ребята
Приветствие