ここのリンクからSqlMapper.csファイルをダウンロードしました。
私は少し紛らわしい問題を抱えていますが。パラメータを使用するたびに、同じ文字列データを使用していると確信しているにもかかわらず、クエリは空のコレクションを返します。
データの抽出に使用されるコードのスニペットを次に示します。
using (PhoenixConnection connection = new PhoenixConnection(Open: true))
{
//this example works, returns 1 token object
string queryWorks = @"Select AccountName, AccountToken from btsource.accounts
where AccountName = 'RekindledPhoenix'";
// replaces 'RekindledPhoenix' with a parameter, returns empty collection
string queryDoesnt = @"Select AccountName, AccountToken from btsource.accounts
where AccountName = @AccountName";
var tokenList = connection.Query<TokenRequest>(queryWorks);
var tokenList = connection.Query<TokenRequest>(queryDoesnt, new { AccountName = "RekindledPhoenix" });
return tokenList.FirstOrDefault();
}
これが私が使用している私のクラスです...
public class TokenRequest
{
public string AccountName { get; set; } //`AccountName` VARCHAR(50) NOT NULL
public long AccountToken { get; set; } //`AccountToken` BIGINT(20) NOT NULL
}
そして、これが私の PhoenixConnection オブジェクトのラッパー関数です。
public IEnumerable<T> Query<T>(string Query, dynamic Parameters = null)
{
return _connection.Query<T>(Query, (object)Parameters);
}
私はもう試した:
- mysql テーブルの名前と値を再確認する
- 動的以外のものを使用するようにラッパーを変更する (機能しませんでした)
- 接続が開いていることを確認しています
- 生の mysqlConnection オブジェクト、コマンドテキストなど
何が欠けているのでしょうか?
パラメータに使用される特別な設定はありますか?
編集:
未加工のMySqlConnection
パラメーターを使用すると、 ではなく でより適切に機能します?
が@
、Dapper ではまだ機能しません。
[@:]
疑問符は無視されているように見えますが、正規表現 ( ) ステートメントでパラメーターを抽出する特定の行が Dapper 内にあることに気付きました。期待どおりの結果を得るには、何を変更すればよいですか?