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

3
我在网上找不到一个示例,教你如何创建基于使用的工作单元的多个数据库映射(在同一应用程序中)。似乎Dapper Extensions只接受一个全局SqlDialect
我想使用Dapper Extensions根据我正在使用的工作单元将其映射到多个数据库。例如,对于存储库UserUserLogin的UoW,我想将它们映射到MySql。对于存储库ProductOrders的UoW,我想将其映射到Postgres。这两个映射应同时在同一应用程序中工作。
由于SqlDialect属性似乎是全局设置,我不确定该如何去做。
1个回答

3

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

DapperExtensions类是一个静态类。因此,包括SqlDialect在内的所有成员都是 static 的。这就是你在问题中提到的问题所在。即使是全局的,如果它是实例类/成员,则可以简单地创建不同的实例,但由于DapperExtensions的设计方式,这是不可能的。

此问题在GitHub上此处报告。

以下是可能的解决方案。

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

我无法进一步解释,因为我从未使用过这种方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接