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