私はLinqをクエリに使用していますが、リフレクションを使用して「選択」部分に返すプロパティのリストを取得したいと考えています。私は無用に以下を試しました:リフレクトを使用してlinqクエリで選択フィールドを取得する
string[] paramList = new[]{"AppId","Name"};
var query =
from entity in
_ctx.App
select new {entity.GetType().GetProperties().Where(prop=>paramList.Contains(prop.Name))};
私はここで何が欠けていますか?
実際にはあなたが正しいです、選択は結果セットの投影だけですか?クエリーのパフォーマンス(返されるデータの量)に関しては関係ありません。私はselect句をフィルタリングして、特定のプロパティでしか動作しないようにするために、クエリから戻ってくるものを制限しようとしていました。 – Cranialsurge
プロジェクションがデータベースクエリに影響を与えるかどうかは、Linqプロバイダに完全に依存します。私はEntity Framework(そしてNHibernate Linqの少なくとも1つの実装)がselect文を考慮に入れ、必要なものだけを取り戻すようにSQL文を作成しようとしていることを知っています。しかし、あなたが猥褻な量のデータについて話していない限り、私はまだそのレベルに最適化することについて心配しないでしょう。 –