【发布时间】:2026-02-12 06:30:01
【问题描述】:
我正在探索 ORM 的产品(专注于 NHibernate,考虑所有选项),并且确信使用 ORM 可能对我们的一些项目有很大的好处——但是我很难想象如何它会在我们的系统中播放。
我的理解是 ORM 理想地用于将数据库和业务逻辑粘合在一起。这假设业务逻辑可以访问数据库,但在我们的系统中,Web 服务卡在中间。
我们当前的系统相当简单。我们一直是 .NET,并且拥有:
- 数据库。有表格......和行。
- 权限仅限于对存储过程执行权限,我们通过基本验证构建存储过程,并且在不经过存储过程的情况下不会进出数据库。
- 网络服务
- 对数据库存储过程执行 CRUD 操作
- 目前通常使用 DataSets/DataTables 作为他们的消息
- 业务逻辑
- 与网络服务对话
在混合中添加 ORM 似乎合乎逻辑地将其置于数据库和 Web 服务之间。因此客户端会向服务发出请求,服务会使用 ORM 以对象而不是 DataTables 的形式检索结果,并且客户端将从 Web 服务接收对象。
所以我的问题是:
-
这种方法有效吗?
- 是否有任何特定的 ORM 支持这种方法?是否有任何主要的 ORM 特别不适合这种环境?
是否有另一种实现将一些 ORM 交互放置在 Web 服务的客户端(让客户端从 ORM 提供者请求一个对象,并让 ORM 提供者包装 Web 服务通信)?
-
我们当前的工作单元专注于 DataTables 及其行状态跟踪。
- 当我们在 ORM 和业务逻辑之间插入一个 Web 服务时,它会提供多少状态跟踪?
- 我们映射的对象是否需要提供自己的状态跟踪?
【问题讨论】:
标签: .net nhibernate architecture orm