【问题标题】:Populating objects with NHibernate across multiple databases在多个数据库中使用 NHibernate 填充对象
【发布时间】:2011-01-04 16:21:54
【问题描述】:

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

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

我意识到这不是一个理想的数据库情况,但这是我被赋予的工作。

【问题讨论】:

    标签: c# nhibernate fluent-nhibernate


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-01
      相关资源
      最近更新 更多