在我的项目中,我使用自定义SqlMapper在dapper中映射我的Db列,但是当我通过执行以下操作设置Dapper以使用我的自定义类型映射器时:
Dapper.SqlMapper.SetTypeMap(typeof(User), new UserMapper());
DapperExtension不再能够映射我的User类,所以当我这样做时:
User item = cn.Get<User>(id);
该项目仅包含默认值。
我的UserMapper不会干扰DapperExtensions的ClassMapper实现,它只实现了SqlMapper.ITypeMap
您认为它以任何方式覆盖DapperExtensions功能吗? 谢谢你的帮助
答案 0 :(得分:1)
经过进一步调查,我终于找到并解决了问题: 假设我的UserMapper中有一个属性 Id 的TestClass映射到数据库列 UserId 。
通过检查 ColumnName = Id 的IPropertyMap搜索是否失败来解决;如果是这样,我通过使用 名称 = Id 搜索IPropertyMap来回退。
如果您认为可以更好地解决这个问题,请告诉我们 谢谢!