【发布时间】:2010-12-04 21:39:33
【问题描述】:
我还没有找到明确的答案并澄清一下:
使用 nHibernate 和 SQL Server,您是否希望忽略或将存储在存储过程、视图和触发器中的业务逻辑迁移到 HQL 或应用程序代码中?
【问题讨论】:
标签: sql-server nhibernate stored-procedures business-objects
我还没有找到明确的答案并澄清一下:
使用 nHibernate 和 SQL Server,您是否希望忽略或将存储在存储过程、视图和触发器中的业务逻辑迁移到 HQL 或应用程序代码中?
【问题讨论】:
标签: sql-server nhibernate stored-procedures business-objects
NHibernate 是一个 O/R 映射器,非常适合使用“域驱动”方法构建的应用程序。
在这样的应用程序中,域模型是业务的表达性面向对象模型。这意味着“模型”包含所有(或大部分)业务逻辑。
在这种情况下,我很少看到(如果有的话)将业务逻辑放入存储过程的情况。
【讨论】:
好吧,抛开所有细节:是的。
NH 是一种对象关系映射器,旨在与称为“领域驱动设计”的架构风格一起使用。它的一个重要方面是除了保存和加载数据之外,它完全不考虑数据库 - 这个概念被称为 Persistence Ignorance,它的座右铭是:没有数据库.
从这个角度来看,将业务逻辑放在存储过程或其他一些数据库对象中不仅不受欢迎,而且显然会产生严重的代码异味。
如果您遵循首选的领域驱动设计方法,那么将没有机会将业务逻辑放入数据库 - 仅仅是因为在构建业务层时没有任何数据库...
【讨论】: