C# Dapper SetTypeMap中断DapperExtension的类映射程序

C# Dapper SetTypeMap中断DapperExtension的类映射程序,c#,.net,dapper,dapper-extensions,C#,.net,Dapper,Dapper Extensions,在我的项目中,我使用自定义SqlMapper在dapper中映射我的Db列,但当我通过以下操作将dapper设置为用户自定义类型映射器时: Dapper.SqlMapper.SetTypeMaptypeofUser,新用户映射器 DapperExtension无法再映射我的用户类,因此当我映射时: User item=cn.Getid 该项仅包含默认值 My UserMapper不会干扰来自DapperExtensions的类映射器实现,它只实现SqlMapper.ITypeMap 您认为它会以

在我的项目中,我使用自定义SqlMapper在dapper中映射我的Db列,但当我通过以下操作将dapper设置为用户自定义类型映射器时:

Dapper.SqlMapper.SetTypeMaptypeofUser,新用户映射器

DapperExtension无法再映射我的用户类,因此当我映射时:

User item=cn.Getid

该项仅包含默认值

My UserMapper不会干扰来自DapperExtensions的类映射器实现,它只实现SqlMapper.ITypeMap

您认为它会以任何方式覆盖DapperExtensions功能吗?
感谢您的帮助

经过进一步调查,我终于找到并解决了问题: 假设我有一个TestClass,其属性Id在我的UserMapper中映射到数据库列UserId

当Dapper执行查询ex.SELECT*FROM Users时,它会询问my UserMapper可以将列UserId=>Id映射到哪个属性。 当DapperExtension执行查询时,它会向我的UserMapper询问它可以将列Id=>?映射到哪个属性?。这是因为DapperExtension执行类似于SELECT UserId As Id FROM Users的查询,因此列已经映射,但是我的UserMapper找不到映射为Name=Id的IPropertyMap。 通过检查ColumnName=Id的IPropertyMap搜索是否失败来解决;如果是这样,我可以通过搜索Name=Id的IPropertyMap来回退

如果你认为这可以更好的解决,请告诉我 谢谢