2016-11-07 25 views
4

プロパティの名前を持つ文字列の配列を取得します。私は、この場合はDBトラフのEntity Frameworkからデータを取得するときにのみ、これらのプロパティをロードします。次のようなものがあります。Linq Select文の匿名オブジェクトを作成

var result = db.myTable 
       .Where(x => x.Id == ”someValue”) 
       .Select(y => new {y.someProperty, y.someOtherproperty, ...}); 

文字列配列から匿名オブジェクトを作成するにはどうすればよいですか。匿名クラスは、コンパイル時にをを生成しているため、(直接)ことはできません

var MyObj = new {}; 
foreach(var I in MyStrinArr) 
{ 
    ... Add the properties here ... 
} 
var result = db.myTable.Where(x => x.Id==”someValue”).Select(y => obj); 

答えて

3

:私のようなものを持っていると思います。文字列配列の反復処理は実行時に行われます。だからこれは匹敵しない。


ダイナミックLINQを持つ可能性がありますが、あなたがこの上ScottGuさんのブログ をお読みください:dynamic-linqそれは、実行時にプロパティを持つタイプを作成する技術を使用しています。 dynamiclinqcsharpファイルをダウンロードし、ソースを確認してください。 DynamicLibrary.csにはClassFactoryがあり、タイプを作成できます。 public Type GetDynamicClass(IEnumerable<DynamicProperty> properties)

関連する問題