Max*_*dov 5 .net nhibernate nhibernate-mapping multiple-databases
使用最新版本的NHibernate(可能还有一些插件),可以在不使用DB链接的情况下在不同服务器上的多个数据库中映射实体吗?
对于后台,我希望实现与此DBA.SE帖子中描述的内容类似的东西.
我在nhusers邮件列表上得到了一个有趣的答案。摘录如下:
来自杰森·麦克利
[...]如果您正在谈论跨多个数据库存储单个实体,那么答案并不明确。您也许可以使用自定义用户类型和/或事件侦听器来执行某些操作来水合对象,但这会导致维护起来很混乱。
另一种方法是使用 ETL 过程将数据从一个数据库传输到另一个数据库。与复制类似,但仅传输另一个数据库所需的数据。您最终会得到 1 个可写数据库和许多读取数据库。然后将域映射到单个数据库。
另一种选择是确定为什么有多个数据库。如果它们代表不同类型的数据/对象,则在域中明确表达这一点。例如,CustomerWithAddress 是与 CustomerOrder 不同的实体。如果您需要来自这两个数据库的信息,则单独查询每个数据库并在代码中构建投影。
var x = session1.get(id);
var y = session2.get(id);
返回合并(x,y);
| 归档时间: |
|
| 查看次数: |
1580 次 |
| 最近记录: |