【问题标题】:Is it possible to perform one query linking to tables on 2 databases with Dapper?是否可以使用 Dapper 执行一个查询链接到 2 个数据库上的表?
【发布时间】:2018-09-30 01:39:45
【问题描述】:

我有 2 个数据库,一个主数据库和一个公司。两个数据库目前位于同一台服务器上,但最终将位于不同的服务器上。是否可以在 dapper 中执行跨数据库连接表的查询?我的应用程序是 Asp.NET Core,数据库是 MariaDB(基本上是 MySQL)。

这是我尝试执行的查询示例:

select a.username, b.name from company.user a join master.lookup_user_type b on a.user_type_id = b.id

也许我对我的实际问题感到困惑,也许我只需要弄清楚如何拥有一个引用多个数据库的连接字符串。

【问题讨论】:

  • 在 Dapper 中,您只需使用原始 SQL 查询,因此这是可能的。
  • dapper core 发出你给它的任何查询;如果您使用的是 contrib/rainbow/etc,则必须更具体;但即使在 core 中,也支持基于水平拆分映射到多种类型的查询,或者如果您对多个查询进行垂直拆分,则可以使用 QueryMultiple;你能说出你想到的查询类型吗?
  • @MarcGravell 我编辑了我的问题以包含示例查询
  • 您的查询看起来正确;你有错误吗?
  • @Kristen 那么是的,只要您的 RDBMS (mysql) 支持它,它就可以正常工作; dapper 不理解查询,坦率地说:不在乎

标签: c# mysql asp.net-core dapper


【解决方案1】:

是的,只要您登录的用户具有访问这两个数据库的权限,就可以在同一台服务器上跨两个不同的数据库执行查询。假设您的数据库名为company 和@ 987654323@,那么您的查询看起来是正确的。

如果您的数据库位于两台不同的服务器上,则需要使用federated tables

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-10-01
    • 2011-10-23
    • 2015-07-06
    • 1970-01-01
    • 1970-01-01
    • 2018-12-22
    • 2022-06-15
    • 1970-01-01
    相关资源
    最近更新 更多