2

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

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

我不知道该怎么做,因为该SqlDialect属性似乎是一个全局设置。

4

1 回答 1

2

班级DapperExtensions就是static班级。因此,包括SqlDialectare在内的所有成员static。这就是你提到的问题的原因。即使是全局的,如果它是实例类/成员,您也可以简单地创建不同的实例,但由于 DapperExtensions 的设计方式,这是不可能的。

问题在 GitHub 上报告。

以下可能是可能的解决方案。

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

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

于 2019-04-16T06:15:12.060 回答