Dapper クエリの動的な結果があります。これには次のようなレコードが含まれています。
_{DapperRow, billing_currency_code = 'USD', count(*) = '6'}
_
_rowVariable.billing_currency_code
_を使用して「USD」にアクセスできます
'6'値を取得するために、rowVariable["count(*)"]
とrowVariable.kv["count(*)"]
を試しましたが、残念ながら何も機能しません。
私の場合、count(*)
列名を変更できません
このような場合、タイプ DapperRow のrowVariable
から「6」の値を取得する方法は?
列名本物は"count(*)"
の場合、行を辞書にキャストできます。
var data = (IDictionary<string,object>)row;
object value = data["count(*)"];
これが機能するためには(少なくともSQL Serverでは)、クエリは次のようなものである必要があります。
select count(*) as [count(*)]
ただし、ほとんどの場合、列名前はありません、この場合:クエリを修正します; p
実際、私はおそらくあなたのクエリを修正すると言うでしょうとにかく;以下は、作業がはるかに簡単です。
select count(*) as [Count]
以下のようにデータを想定します
var Details={DapperRow, billing_currency_code = 'USD', count(*) = '6'}
列が動的に来るので
var firstRow= Details.FirstOrDefault();
データの見出し列を取得するには
var Heading= ((IDictionary<string, object>)firstRow).Keys.ToArray();
キーを使用してデータの値を取得するには
var details = ((IDictionary<string, object>)firstRow);
var vallues= details[Heading[0]];