I'm using Dapper against a database where strings are stored primarily in VarChar
columns. By default Dapper uses NVarChar
parameters when generating queries and while I can wrap each and every string parameter I use with DbString
it'd be great to use AnsiStrings by default and use DbString
for the NVarChar
case.
I tried changing the type map in the Dapper source from DbType.String
to DbType.AnsiString
however that seems to cause an error in the IL generation for the parameters delegate (throws an InvalidProgramException
).
Is there an easier way to do this?
Update
Just changing the typeMap was not sufficient I needed to alter some if (dbType == DbType.String)
checks too. Now it works!
You can accomplish this without modifying the source code.
Dapper.SqlMapper.AddTypeMap(typeof(string), System.Data.DbType.AnsiString);
Setting this once will adjust all of your strings to varchar.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With