Dapperを使用してSQLからクエリを実行し、動的クエリを実行しています。
var returns = conn.Query(dynamicQuery);
その後、結果を循環するときに、処理している日付のタイプを知りたいので、次のことを試みました。
foreach (var result in results)
{
MessageBox.Show(result.GetType().ToString());
}
しかし、常にMessageBox
で失敗し、エラーCannot perform runtime binding on a null reference
が発生します。
代わりにこれを使用すると:
var returns = conn.Query<object>(dynamicQuery);
その後、コマンドは機能しますが、Dapper.SqlMapper+DapperRow
オブジェクトタイプが表示されます。
dynamic
変数のタイプを見つけるにはどうすればよいですか?
動的APIでは、列という形で形状を知っていることが期待されます。
foreach(dynamic row in query) {
int id = row.Id;
//...
}
ただし、各行はIDictionary<string, object>
も実装します。明確でない場合は、キャストしてください。
または、(コメント)タイプが日付時刻のセルが1つあることがわかっている場合:
var when = conn.Query<DateTime>(...).Single();