Мне нужно написать несколько динамических запросов для проекта, над которым я работаю. Я обнаружил, что моя программа тратит значительное количество времени на методы Count и First, поэтому я начал переходить на .Single, только чтобы узнать, что такого метода нет.
Приведенный ниже код был моей первой попыткой создать его (в основном, скопированный из метода Where), но он не работает. Помощь
public static object Single(this IQueryable source, string predicate, params object[] values)
{
if (source == null) throw new ArgumentNullException("source");
if (predicate == null) throw new ArgumentNullException("predicate");
LambdaExpression lambda = DynamicExpression.ParseLambda(source.ElementType, typeof(bool), predicate, values);
return source.Provider.CreateQuery(
Expression.Call(
typeof(Queryable), "Single",
new Type[] { source.ElementType },
source.Expression, Expression.Quote(lambda)));
}