您的位置:首页 > 数据库 > Mongodb

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

2014-10-24 18:33 369 查看
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, int, bool>> 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, int, bool> predicate);

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

唉,以后用扩展方法还要看清提供者。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: