我有一个带有多个数据库的 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/