Chamar Expressão em um LINQ para Entidades Selecionar com o LINQkit
Aqui está o que eu quero fazer:
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
}
);
}
}
ATUALIZAÇÃO:
myExpression
tem que ficar separado da minha consulta, porque eu quero reutilizá-lo em várias consultas LINQ.
ATUALIZAÇÃO 2:
SeparadomyExpression
para dentromyExpression1
emyExpression2
para deixar claro o fato de que eu quero reutilizá-los separadamente.
ATUALIZAÇÃO 3:
Adicionado LINQkit ao exemplo.
Problema 1 throws: Não é possível converter um objeto do tipo 'System.Linq.Expressions.FieldExpression' para digitar 'System.Linq.Expressions.LambdaExpression'.
Problema 2 throws: Erro interno do Provedor de Dados do .NET Framework 1025.