次のような動的なDapperクエリが与えられます。
var results = connection.Query<dynamic>("SELECT ....");
結果から返された列/プロパティのいくつかを削除したいと思います。秘訣は、保持したいプロパティの名前を知らない/気にせずにこれを実行したいということです。そうしないと、結果を新しい匿名タイプに投影するだけです。
結果をループしてそれぞれをにキャストしようとしたIDictionary<string, object>
ので、データを保持しているキーと値のペアを簡単に削除できました。残念ながら、何らかの理由で、基盤となる内部FastExpandoオブジェクトはRemoveメソッドを実装していません。FastExpandoのソースコードは次のとおりです。
bool IDictionary<string, object>.Remove(string key)
{
throw new NotImplementedException();
}
どうすればこれを実装できますか?明確にするために、私は基本的に欲しいです:
var filteredResults = from r in results
select new { // All properties except a couple of well-known ones }