簡體   English   中英

Dapper將String參數映射為AnsiString

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM