Вот что я хочу сделать:вызова Expression в LINQ к Entities Выберите с LINQkit
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
}
);
}
}
UPDATE:
myExpression
должен оставаться отрезанным от запроса, потому что я хочу, чтобы использовать его в нескольких запросах LINQ.
UPDATE 2:
Расстались myExpression
в myExpression1
и myExpression2
, чтобы сделать ясным тот факт, что я хочу использовать их по отдельности.
UPDATE 3:
Добавлено LINQkit примеру.
Проблема 1 броски: Невозможно привести объект типа «System.Linq.Expressions.FieldExpression» к типу «System.Linq.Expressions.LambdaExpression».
Задача 2 броски: ошибка поставщика Internal данных .NET Framework 1025.
Посмотрите [LINQKit] (http://www.albahari.com/nutshell/linqkit.aspx). – svick
Спасибо, я попробую! – billy
@svick, я обновил вопрос, чтобы отразить проблемы, с которыми я сейчас пользуюсь LINQkit ... – billy