Jon Skeet有一个很好的答案(LINQ Between Operator),关于如何编写一个表达式树,它将在LINQ to SQL中运行以执行两次操作。我曾尝试使用EF,但由于下面的Invoke调用不受支持而失败。
public static Expression<Func<TSource, bool>> Between<TSource, TKey>(Expression<Func<TSource, TKey>> keySelector, TKey low, TKey high) where TKey : IComparable<TKey>
{
Expression key = Expression.Invoke(keySelector, keySelector.Parameters.ToArray());
LINQ to不支持LINQ表达式节点类型'Invoke' 实体。
是否有一个Invoke的替代方法可以在这里用来获取输入lambda指定的属性,所以这适用于EF?