在 n 层架构中,放置对象关系映射 (OR/M) 代码的最佳位置是数据访问层。例如,可以将数据库查询和更新委托给 NHibernate 之类的工具。
然而,我想将所有对 NHibernate 的引用保留在数据访问层中,并将依赖关系抽象到远离其下方或上方的层。这样,我可以交换或插入另一个 OR/M 工具(例如实体框架)或某种方法(例如普通的存储过程调用、模拟对象),而不会导致编译时错误或对整个应用程序进行大修。可测试性是一个额外的好处。
有人可以建议一个包装器(即接口或基类)或方法来保持 OR/M 松散耦合并包含在 1 层中吗?或者指向我有帮助的资源?
谢谢。