我正在開發一個應用程序使用asp.net mvc,NHibernate和DDD。我有我的應用程序的控制器使用的服務層。一切都在使用Unity來注入依賴關係(ISessionFactory存儲庫中,服務器和服務器中的服務器存儲庫)並且工作正常。服務層重複我的存儲庫
但是,這是很常見的,我需要在服務的方法來獲得唯一對象在我的倉庫,像這樣(服務類):
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 ... */
}
此代碼是正確的DDD?對於每個服務類,我有一個存儲庫,並且對於每個服務類需要我爲一個實體做一個「獲取」方法?
謝謝你們
乾杯