c# - 使用 NHibernate 跨多个数据库填充对象

标签 c# nhibernate fluent-nhibernate

我有一个带有多个数据库的 SQL Server。 Database1 有一个表,其中引用了存储在 Database2 表中的 ID。不确定是否可行,但我可以配置 NHibernate(特别是 Fluent NHibernate)来饱和从多个数据库中提取数据的对象吗?

我不关心写入这些表,我只是尝试对对象进行 ORM 以在数据查看应用程序中显示。

我意识到这不是理想的数据库情况,但这是我需要处理的情况。

最佳答案

对于特定于数据库的查询结构(例如跨数据库查询),通常的回答是在“本地”数据库(NH 连接到)上创建一个 View ,该 View 将执行跨数据库查询并返回连接结果。您还可以拥有一个每个数据库的存储库,并开发一些方法来查询每个数据库中的记录并手动加入它们。

同样有效的一件事;每个映射的表属性只是一个字符串,可以是任何东西; NHibernate 只是接受它并将其插入到需要引用表名的任何地方。因此,您可以尝试使用完全限定名称在映射中指定表:ConnectedDB..LocalTable、OtherDB..RemoteTable。它可能被认为是 hack,但它在某种程度上也相当优雅;您的程序甚至不必知道持久性模式中有多个数据库。

关于c# - 使用 NHibernate 跨多个数据库填充对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4595866/

相关文章:

sql - Nhibernate QueryOver 中的嵌套选择

.net - 如何使用NHibernate和Fluent NHibernate存储非截断的varchar(max)字符串

c# - 使用用作 protected 字段的内部类型

c# - 无法使用单声道连接到在 ubuntu 上运行的自己的 IPv6 TCP 服务器应用程序

c# - 为什么我的 Close 函数没有被调用?

c# - 使用 LINQ 更新 DataTable 中的两列

nhibernate - 你应该如何在我的 asp.net-mvc 站点上使用 UnitofWork 模式(使用 nhibernate 和 ninject)

asp.net-mvc - MVC 属性中的 HttpContext - 线程问题?

.net - NHibernate:无法成功设置延迟加载

c# - 与 SQL Azure 的多对多流畅 NHibernate 映射