私はnet 4.5、C#およびEntity Frameworkを使用しています。私はlinqクエリの実行時にフィールドを呼び出すことができるようにしたい。Entity Framework - Linqを使用してフィールド名を呼び出す
using var(context = new SomeDataEntities())
{
var abc = from b in context.someTable
where b.SomeField == 1
select b.AnotherField;
}
しかし、入力文字列パラメータに基づいてb.SomeFieldを呼び出すとします。あなたが動的にwhere句を作成したい場合は 私の現在のコードは、これを行うための最善の方法は、代わりにLINQ形式の連鎖する方法であり、
using var(context = new SomeDataEntities())
{
var abc = from b in context.someTable
where b.GetType().GetProperty("SomeField").GetValue(b, null).ToString() == "test"
select b.AnotherField;
}
注 - これは単なる基本例ですが、私はより複雑なクエリを実行します。 – dfresh22
これは、Transact SQLクエリに変換できません。唯一の他の選択肢は、コンテンツ全体をメモリに取り込んで、リフレクションでwhere句を実行することです。プロパティの文字列を使用して動的SQL生成をサポートするライブラリを使用することもできます。 [dynamic linq](https://www.nuget.org/packages/System.Linq.Dynamic/)を参照してください。 – Igor
良いコール、私は式 – dfresh22