可以使用Dapper默认使用AnsiStrings吗?

Joh*_*ter 12 c# dapper

我正在使用Dapper对数据库,其中字符串主要存储在VarChar列中.默认情况下,Dapper NVarChar在生成查询时使用参数,而我可以将我使用的每个字符串参数包装起来DbString,默认情况下使用AnsiStrings非常好并且DbString用于NVarChar案例.

我试图从改变所述小巧玲珑源的类型映射DbType.StringDbType.AnsiString然而,似乎导致IL生成的误差的参数代表(引发InvalidProgramException).

有更简单的方法吗?

更新

只是改变typeMap是不够的我也需要改变一些if (dbType == DbType.String)检查.现在它有效!

Bil*_*Rob 26

您无需修改​​源代码即可完成此操作.

Dapper.SqlMapper.AddTypeMap(typeof(string), System.Data.DbType.AnsiString);
Run Code Online (Sandbox Code Playgroud)

设置一次会将所有字符串调整为varchar.