我找不到在线示例,他们向您展示了如何根据所使用的工作单元创建到多个数据库(在同一应用程序中)的映射。似乎Dapper Extensions仅接受一个全局SqlDialect
。
我想使用Dapper Extensions根据我使用的工作单元映射到多个数据库。因此,例如对于存储库User
和UserLogin
的UoW,我想将它们映射到MySql。对于存储库Product
和Orders
的UoW,我想映射到Postgres。这两个映射应同时在同一应用程序中工作。
由于SqlDialect
属性似乎是全局设置,因此我不确定该怎么做。
答案 0 :(得分:2)
类DapperExtensions
是static
类。因此,包括SqlDialect
的所有成员都是static
。这就是为什么您提到的问题。即使是全局实例,如果它是实例类/成员,您也可以简单地创建其他实例,但这由于DapperExtensions的设计方式而无法实现。
此问题已在GitHub here上报告。
以下可能是解决方案。
如果要使用DapperExtensions的多种实现,可以尝试使用
impl := new DapperImplementor(new SqlGeneratorImpl(config));
我无法解释更多,因为我从未使用过这种方法。