在我的各种项目中,我实现了命令/查询分离模式并使用 NHibernate 作为我的 ORM。
一般来说,我将我的命令和查询保存在与特定活动集相关的单独项目中,例如,UserManagement
等。TagManagement
QuestionManagement
我非常喜欢将所有内容都很好地划分到这些存储库中,并具有易于查找的功能。以这种方式做事当然有好处。
然而,我开始怀疑这种抽象对于基本查询的价值,特别是考虑到 NHibernate 本身已经提供了如此强大的抽象。
在我的 MVC 控制器中考虑这一点:
_nHibernateSession.Get<UserProfile>(_sessionData.UserId);
我可以将其抽象为UserManagement
存储库中的查询,但我不确定它提供了什么价值。
你怎么看?您会将所有内容都保留在命令/查询范式中,还是直接在控制器中使用 nhibernate 会话来处理像这样的简单请求?