質問: `List`をDataGridView DataSourceプロパティにバインドしようとしています。コンパイル時にエラーはありませんが、列も表示されません。 列をあらかじめ作成しておくと、行が表示されますが、データは表示されません。 簡単に言えば、DataGridViewで`List`オブジェクトを適切に使用するにはどうすればよいですか?
回答: 私の記憶が正しければ、Dapperのの動的なクエリは、のコレクションを返し`ExpandoObject`あなたが動的などのプロパティにアクセスすることができますsの`person.Name` 、しかし、基礎となるオブジェクトは実際には持っていない`Name`プロパティを。実行時バインディングを使用して、内部キー/値辞書からデータを抽出します。 `DataGridView`既定のデータバインディングは、オブジェクトのプロパティを取得するためにリフレクションを使用するため、クエリから返された列は見つかりません。 だからあなたはいくつかの選択肢があります: * 結果を`dynamic`なく具体的な型として水和する * デフォルトのバインディングを使用するのではなく、 `DataGridView`に表示する列を指定します。 * この回答に類似したものを使用して、動的結果を`DataTable`変換し`DataTable` 。