式ツリーを使用して LINQ 匿名型属性を動的に選択する
式ツリーを使用して複雑な LINQ クエリを構築し、匿名型を動的に選択することができます。単一の属性を選択するクエリは簡単に生成できますが、匿名タイプで複数の属性を選択するには別のアプローチが必要です。
これを行うには、反射放出クラスとヘルパー クラスを使用して、実行時に匿名型を動的に定義できます。以下に例を示します:
SelectDynamic 拡張メソッド:
<code>public static IQueryable SelectDynamic(this IQueryable source, IEnumerable<string> fieldNames) { ... // 实现细节 }</code>
LinqRuntimeTypeBuilder 補助クラス:
<code>public static class LinqRuntimeTypeBuilder { ... // 实现细节 }</code>
このアプローチでは、Intellisense のサポートなしで複雑な動的選択を作成できます。これは、遅延バインドされたデータ コントロールに役立ちます。
次の例では、City が "London" である Countries エンティティから Name プロパティと Population プロパティを選択するクエリを生成します。
<code>var v = Countries.Where(c => c.City == "London") .SelectDynamic(new[] { "Name", "Population" });</code>
その結果、変数 v には、Name プロパティと Population プロパティを持つ動的タイプが含まれます。
以上が式ツリーを使用して LINQ で匿名型プロパティを動的に選択するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。