【发布时间】:2013-03-07 17:24:32
【问题描述】:
我正在设计一个访问存储在数据库中的一些数据的 WCF 服务。
对 DB 的实际访问由一些 ORM 层处理(目前是 NHibernate,但这是一个实现细节)。
我想知道这种场景的正确设计是什么?
天真的方法是这样的:
public class ServiceImplementation : IService
{
// NHibernate session
private ISession session;
// service methods that use *session*
}
这专门与 NHibernate 耦合,并强制服务类管理初始化并拥有 ORM 逻辑代码。
我的问题特别是:
- 如何实现服务与 DB/ORM 层解耦的解耦设计?
- 何时和谁应该初始化数据库访问/ORM 层?服务会管理吗?
由于这是一种常见的情况,我假设存在一些“模式”/最佳实践。
在线提供的大多数示例都展示了如何实现这一点(如何使用 ORM 访问数据库等),但没有从设计的角度更大规模地正确实现这一点。
【问题讨论】:
标签: c# database wcf wcf-data-services