nHibernate是否打算替换数据库对象?

时间:2009-10-08 07:26:52

标签: sql-server nhibernate stored-procedures business-objects

我还没有找到明确答案并澄清:

对于nHibernate和SQL服务器,您是否应该忽略或将存储在存储过程,视图和触发器中的业务逻辑迁移到HQL或应用程序代码中?

2 个答案:

答案 0 :(得分:1)

NHibernate是一款O / R映射器,非常适合使用“域驱动”方法构建的应用程序。
在这些应用程序中,域模型是一种富有表现力的面向对象的业务模型。这意味着“模型”包含所有(或大部分)业务逻辑 在这种情况下,我看到很少(如果有的话)将业务逻辑放入存储过程的情况。

答案 1 :(得分:0)

好吧,撇开所有细节:是的。

NH是一个对象关系映射器,旨在与称为“域驱动设计”的架构风格一起使用。它的一个重要方面是,除了保存和加载数据之外,它完全忽略了数据库 - 这个概念被称为 Persistence Ignorance ,它的座右铭是:没有数据库

从这个角度来看,让业务逻辑生存在存储过程或其他数据库对象中不仅不鼓励,而且显然会产生严重的代码异味。

如果您遵循首选的域驱动设计方法,那么就没有机会将业务逻辑放入数据库 - 只是因为在构建业务层时没有任何数据库...