MongoDB官方C#驱动的AsQueryable踩到坑了


collection.AsQueryable().Where()有4个重载,分别是:

public static IQueryable<TSource> Where<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, bool>> predicate);
public static IQueryable<TSource> Where<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, intbool>> predicate);
public static IEnumerable<TSource> Where<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate);
public static IEnumerable<TSource> Where<TSource>(this IEnumerable<TSource> source, Func<TSource, intbool> predicate);
由于分页需要同时查询数量和列表,就把条件提出来,结果类型错误的将条件类型选成了 IEnumerable<TSource>提供的 Func<TSource,  bool>,而不是 IQueryable<TSource>提供的 Expression< Func<TSource,  bool>>,结果导致条件在C#中筛选、排序。

唉,以后用扩展方法还要看清提供者。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM