【发布时间】:2014-06-10 10:12:16
【问题描述】:
我想要的基本上是能够做到以下(以下是伪代码)
string SelectField = cb1.Name.Substring(2);
MyContext.Items.Select(x=>x.SelectField )
我尝试了以下方法:
string SelectField = cb1.Name.Substring(2);
ParameterExpression pe = Expression.Parameter(typeof(Item), "p");
var expr = Expression.Lambda(Expression.Property(pe, SelectField), pe);
query = MyContext.Items.Select(p=>expr)
但它给了我错误:
The LINQ expression node type 'Lambda' is not supported in LINQ to Entities.
这可能吗?我只是希望能够根据我的组合框的选择来选择单个实体属性。
【问题讨论】:
-
属性多吗?如果没有,可能切换不同的查询会更容易。
-
另外,动态 linq 库可以帮助你:dynamiclinq.codeplex.com
-
@Gusman 那是我的,但大约有 15 个属性,即使更少,我也想知道是否有一种更简单的方法,不需要重复的代码,只需进行一次更改跨度>
-
看看我之前评论中的库,允许从字符串创建 linq 查询。
-
@Gusman 我真的不想在库上导入另一个依赖项,查看它的源代码,它看起来使用表达式树的方式与我尝试使用它们的方式相同,也许它会帮我弄清楚我做错了什么。
标签: c# linq dynamic linq-to-entities entity-framework-6