私が取り組んでいるプロジェクトのために、いくつかの動的クエリを作成する必要があります。プログラムが 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)));
}