如何将Dapper扩展映射到多个数据库?

时间:2019-04-12 16:03:02

标签: c# dapper-extensions

我找不到在线示例,他们向您展示了如何根据所使用的工作单元创建到多个数据库(在同一应用程序中)的映射。似乎Dapper Extensions仅接受一个全局SqlDialect

我想使用Dapper Extensions根据我使用的工作单元映射到多个数据库。因此,例如对于存储库UserUserLogin的UoW,我想将它们映射到MySql。对于存储库ProductOrders的UoW,我想映射到Postgres。这两个映射应同时在同一应用程序中工作。

由于SqlDialect属性似乎是全局设置,因此我不确定该怎么做。

1 个答案:

答案 0 :(得分:2)

DapperExtensionsstatic类。因此,包括SqlDialect的所有成员都是static。这就是为什么您提到的问题。即使是全局实例,如果它是实例类/成员,您也可以简单地创建其他实例,但这由于DapperExtensions的设计方式而无法实现。

此问题已在GitHub here上报告。

以下可能是解决方案。

  

如果要使用DapperExtensions的多种实现,可以尝试使用impl := new DapperImplementor(new SqlGeneratorImpl(config));

我无法解释更多,因为我从未使用过这种方法。