我正在使用net 4.5,C#和实体框架。我希望能够在运行时为linq查询调用一个字段。实体框架 - 使用Linq调用字段名称
using var(context = new SomeDataEntities())
{
var abc = from b in context.someTable
where b.SomeField == 1
select b.AnotherField;
}
但是我想调用基于输入字符串参数的b.SomeField。 我当前的代码是
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生成的库。请参阅[动态LINQ](https://www.nuget.org/packages/System.Linq.Dynamic/) – Igor
好的调用,我将探索使用表达式 – dfresh22