これが私がやりたいことです:
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。