[英]Dapper mapping String parameter as AnsiString
我需要將參數傳遞給SQL語句,使用Firebird ADO一切正常,但是使用InterBase ADO時會出現問題。 我的代碼:
result = conn.Query<DestClass>(sqlCmd, new
{
stringParam = stringVal,
intParam1 = intVal1,
intParam2 = intVal2
}).Single();
與我有FormatException
,但是當我定義與參數DynamicParameters
和設置DbType.AnsiString
為StringParam中,SQL效果很好。 但是當我需要傳遞字符串時,我的代碼中有很多地方,我不想在所有地方都改變它。
然后我發現我可以使用Dapper.SqlMapper.AddTypeMap(typeof(String), DbType.AnsiString);
但我不能。 我有Common Language Runtime detected an invalid program.
如何解決這個問題?
編輯
看起來問題在Dapper v1.22中得到了解決。
有人建議添加表單的程序集級屬性:
[assembly:SomeName(blah)]
這將控制來自該程序集的所有類型的默認字符串類型。 這可能會實現您所需要的大部分功能(盡管它會以另一種方式推動擺動,因此您需要告訴其他人使用該做什么)。 我目前非常積極地攻擊短小精悍,所以我希望這會在短期內實現。
請注意,您不需要使用DynamicParameters
; 你也可以用:
stringParam = new DbString { Value = stringVal, IsAnsi = true }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.