【发布时间】:2013-07-16 18:33:55
【问题描述】:
这是我想做的:
class MyDbContext : DbContext
{
private static Expression<Func<MyClass, int>> myExpression1 = x => /* something complicated ... */;
private static Expression<Func<Item, int>> myExpression2 = x => /* something else complicated ... */;
public object GetAllData()
{
return (
from o in MyClassDbSet.AsExpandable()
select new
{
data1 = myExpression1.Invoke(o), // problem 1
data2 = o.Items.Select(myExpression2.Compile()) // problem 2
}
);
}
}
更新:
myExpression 必须与我的查询分开,因为我想在多个 LINQ 查询中重用它。
更新 2:
将myExpression 分隔为myExpression1 和myExpression2,以明确我想分别重用它们。
更新 3:
将 LINQkit 添加到示例中。
问题 1 抛出:无法将“System.Linq.Expressions.FieldExpression”类型的对象转换为“System.Linq.Expressions.LambdaExpression”类型。
问题 2 抛出:内部 .NET Framework 数据提供程序错误 1025。
【问题讨论】:
-
看看LINQKit。
-
谢谢,我试试!
-
@svick,我更新了问题以反映我现在使用 LINQkit 时遇到的问题...
标签: c# linq-to-entities linq-expressions linqkit