gpt4 book ai didi

c# - Dapper 可以默认使用 AnsiStrings 吗?

转载 作者:可可西里 更新时间:2023-11-01 08:17:08 25 4
gpt4 key购买 nike

我在数据库中使用 Dapper,其中字符串主要存储在 VarChar 列中。默认情况下,Dapper 在生成查询时使用 NVarChar 参数,虽然我可以用 DbString 包装我使用的每个字符串参数,但默认情况下使用 AnsiStrings 并使用 DbString 用于 NVarChar 情况。

我尝试将 Dapper 源代码中的类型映射从 DbType.String 更改为 DbType.AnsiString 但这似乎会导致 IL 生成错误参数委托(delegate)(抛出 InvalidProgramException)。

有更简单的方法吗?

更新

仅仅改变 typeMap 是不够的,我还需要改变一些 if (dbType == DbType.String) 检查。现在可以了!

最佳答案

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

Dapper.SqlMapper.AddTypeMap(typeof(string), System.Data.DbType.AnsiString);

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

关于c# - Dapper 可以默认使用 AnsiStrings 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6386069/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com