0

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

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

4

2 回答 2

1

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

于 2009-10-08T07:35:15.557 回答
0

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

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

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

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

于 2009-10-08T07:48:18.473 回答