3
このトピックに関するいくつかの質問が既にありましたが(例えばExpression.Invoke in Entity Framework?)、私の特定の状況については答えが見つかりませんでした。 私はこのようなメソッドを定義したい:Linq to EFの式<Func <Model, bool>>を使用するにはどうすればよいですか?
public IQueryable<Customer> GetCustomers(Expression<Func<Customer, bool>> condition)
{
return from p in ctx.Customers.AsExpandable()
where condition.Compile()(p)
select p;
}
AsExpandable方法はLinqKit(これは前述のスレッドでadvicedたように)からです。しかし 、私は彼のように私のメソッドを呼び出すようにしてみてください。
var customers = GetCustomers(c => c.ID == 1);
それはInvalidCastExceptionがスローされます:「システムを入力する
型のオブジェクトをキャストすることができません「System.Linq.Expressions.InstanceMethodCallExpressionN」を.Linq.Expressions.LambdaExpression '。 私は何が間違っていますか?
ありがとう!よく働く。 –
'InvEx'を使用していないので、' AsExpandable'はここでは必要ありません。 – Servy
@DCShannon:Typo;一定。 – SLaks