我目前正在进行一个小的ASP.NET MVC项目。
我试图使用Nhibernate来将数据持久化到MS Sql Server数据库中。
经过长时间研究DDD和其他在互联网上找到的项目,我决定采用存储库模式。
现在我遇到了一个困境。
当使用Nhinbernate时,我真的需要一个存储库吗?
不使用存储库,而是拥有一个服务层(目前我没有一个服务层),该服务层与Nhinbernate交互,避免多次编写类似下面这样的代码,这难道不是更好的吗:
public Domain.Reminder GetById(Guid Code)
{
return (_session.Get<Domain.Reminder>(Code));
}
public Domain.Reminder LoadById(Guid Code)
{
return (_session.Load<Domain.Reminder>(Code));
}
public bool Save(Domain.Reminder Reminder)
{
_session.SaveOrUpdate(Reminder);
return (true);
}
public bool Delete(Domain.Reminder Reminder)
{
_session.Delete(Reminder);
return (true);
}
我发现了一篇Ayende过时的文章,反对使用仓储模式。
我知道这些话题一直存在很大的争议,答案总是...视情况而定,但是我觉得使用太多的抽象层会使事情变得更加复杂和难以理解。
我错了吗?