ServiceStack.OrmLite MySqlClient跨数据库联接(未选择数据库)

时间:2019-01-23 21:38:19

标签: mysql asp.net ormlite-servicestack

我目前正在考虑将我的项目从Dapper移到OrmLite。 但是我遇到了OrmLite使用的MySql默认连接器的问题,因为我需要执行跨数据库联接。因此,由于这个原因,我没有在连接字符串中指定任何数据库。这与Dapper和Pomelo MySql Provider完美配合,因为我在查询本身中指定了架构。 OrmLite支持Schema属性,所以我希望它能快速工作。

这是我的Users类的外观:

[Schema("xf")]
[Alias("xf_user")]
public class User
{
    [PrimaryKey] [Alias("user_id")] public int Id { get; set; }

    [Alias("username")] public string Username { get; set; }

    [Ignore] public string Password { get; set; }

    [Ignore] public string Role { get; set; }

    [Ignore] public string Token { get; set; }
}

OrmLite创建正确的查询,看起来像select user_id, username from xf.xf_user;,但是在执行查询之前,mysql客户端抛出异常,即没有选择db,这是正确的,但是必须有一种解决方法,因为我没有这样做的唯一原因在连接字符串中指定数据库是因为我的应用程序连接了来自运行xenforo的论坛和我们自己的架构的数据,该架构是一个完全独立的应用程序,仅使用xenforo来查询某些帖子和用户信息。

是否有可以与OrmLite一起使用并且在连接字符串中不需要数据库的第三方mysql提供程序,以便我可以在查询中指定它或任何其他解决方法?我看到另一个选择是在OrmLite中创建命名连接,然后首先从第一个数据库查询数据,然后使用其他连接从第二个数据库获取数据,然后手动将它们连接。

感谢您的陪伴。

关于阿图尔

0 个答案:

没有答案