Dapperマッピング文字列パラメータAnsiString

ado c# dapper interbase

質問

私は、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);使用できることがわかりましたDapper.SqlMapper.AddTypeMap(typeof(String), DbType.AnsiString);しかし、私はできません。 Common Language Runtime detected an invalid program.

この問題を解決するには?

EDIT

Dapper v1.22で問題が解決されたようです。

エキスパート回答

フォームのアセンブリレベルの属性を追加する提案があります:

[assembly:SomeName(blah)]

そのアセンブリから来るすべての型のデフォルト文字列型を制御します 。これはおそらくあなたが必要とするもののほとんどを達成するでしょう(スイングを逆に押すでしょうから、 他の用途に何をするかを伝える必要があります)。私は現在非常に積極的にハッピーになっているので、短期的にはこれが実現すると期待しています。

DynamicParametersを使用する必要はありません。次のものを使用することもできます:

stringParam = new DbString { Value = stringVal, IsAnsi = true }


ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow