我正在使用ASP.NET MVC 3
。服務和存儲庫層可以發生多少活動?
我仍然對存儲庫層中會發生多少事感到困惑。我一直以來都認爲它只能做需要的事情,而沒有更多。
我一直使用服務層,然後調用我的存儲庫層。我總是有一個存儲庫層的相應服務層和一個存儲庫方法的相應服務層方法,即使它只是爲了獲取項目列表。所以,我有以下服務層:
public class UnitService : IUnitService
{
private readonly IUnitRepository unitRepository;
public UnitService(IUnitRepository unitRepository)
{
this.unitRepository = unitRepository;
}
public IEnumerable<Unit> GetAll()
{
return unitRepository.GetAll();
}
}
這是我的倉庫層可能是什麼樣子:
public class UnitRepository : IUnitRepository
{
// Partial code
public IEnumerable<Unit> GetAll()
{
return DbContext.Units
.Include("Department")
.OrderBy(x => x.Name);
}
}
我想減少我的服務層類,如果是不是真的需要它。那麼只需從我的控制器而不是服務層調用存儲庫就可以了?如果我按照自己的方式行事,這真的很重要嗎?我的意思是它仍然帶回我所有的數據。
我會在哪裏做緩存和日誌記錄?服務層或存儲庫中?假設GetAll方法帶回了需要緩存的大量記錄。我會將其緩存在存儲庫中,還是需要一個服務層?
記錄也是如此。我會在哪裏登陸的東西,如:
Log.Info("Adding category: {0}, {1}", entity.Id, entity.Name);
// adding code
Log.Info("Category added: {0}, {1}", entity.Id, entity.Name);
而日誌和緩存? – 2012-07-13 06:55:35
在DAL緩存,日誌=>無論你需要登錄什麼。可能是控制器,模型,服務層,DAL,... – 2012-07-13 06:57:38
如果我從Controller - > Service Layer - > Repository - >使用上下文,我的數據層是什麼。所以我假設在存儲庫層? – 2012-07-13 07:01:17