回到目录

MongoDB的官方驱动,语法更好,更强

之前写过关于IMongoRepository仓储的文章,在mongodb的驱动选择上使用了NoRM,但是进行$ref引用类型导航时出现了问题,它对引用类型属性支持不是很好,还是使用几年前的泛型技术而没有使用Attribute,在这个方面官方驱动做的更好,所以,我还是使用官方驱动又实现了一次IMongoRepository,把一些实现的细节封装在了底层,我们叫这个官方仓储为MongoOfficialRepository,呵呵,谁叫你来的晚呢,MongoRepository已经为NoRM占上了,呵呵。

新的IMongoRepository接口内容添加了4个方法

        /// <summary>
/// 官方驱动,返回带分页的结果集
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <returns></returns>
PagedResult<TEntity> GetModel(int pageIndex, int pageSize); /// <summary>
/// 官方驱动,返回带条件和分页的结果集
/// </summary>
/// <param name="expression"></param>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <returns></returns>
PagedResult<TEntity> GetModel(Expression<Func<TEntity, bool>> expression, int pageIndex, int pageSize); /// <summary>
/// 官方驱动,返回带排序和分页的结果集
/// </summary>
/// <param name="fields"></param>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <returns></returns>
PagedResult<TEntity> GetModel(Dictionary<Expression<Func<TEntity, object>>, bool> fields, int pageIndex, int pageSize); /// <summary>
/// 官方驱动,返回带条件和排序及分页的结果集
/// </summary>
/// <param name="expression"></param>
/// <param name="fields"></param>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <returns></returns>
PagedResult<TEntity> GetModel(Expression<Func<TEntity, bool>> expression, Dictionary<Expression<Func<TEntity, object>>, bool> fields, int pageIndex, int pageSize);

对这四大方法的实现,为了不让MongoDB的更多细节公开,所以,更多的内核只能在仓储中实现了,呵呵

        public PagedResult<TEntity> GetModel(int pageIndex, int pageSize)
{
return GetModel(i => true, pageIndex, pageSize);
} public PagedResult<TEntity> GetModel(Expression<Func<TEntity, bool>> expression, int pageIndex, int pageSize)
{
return GetModel(expression, new Dictionary<Expression<Func<TEntity, object>>, bool>(), pageIndex, pageSize);
} public PagedResult<TEntity> GetModel(
Dictionary<Expression<Func<TEntity, object>>, bool> fields,
int pageIndex,
int pageSize)
{
return GetModel(i => true, fields, pageIndex, pageSize);
} public PagedResult<TEntity> GetModel(
Expression<Func<TEntity, bool>> expression,
Dictionary<Expression<Func<TEntity, object>>, bool> fields,
int pageIndex,
int pageSize)
{ SortDefinition<TEntity> sorts = new ObjectSortDefinition<TEntity>(new { });
foreach (var item in fields)
{
if (item.Value)
sorts = sorts.Ascending(item.Key);
else
sorts = sorts.Descending(item.Key);
}
var skip = (pageIndex - ) * pageSize;
var limit = pageSize;
var recordCount = _table.CountAsync<TEntity>(i => true).Result;
return new PagedResult<TEntity>(
recordCount,
(int)(recordCount + pageSize - ) / pageSize,
pageSize,
pageIndex,
_table.Find(expression)
.Sort(sorts)
.Skip(skip)
.Limit(limit)
.ToListAsync().Result);
}

OK,现在你可以在业务层去调用它了,基本上面四个方法可以满足你的一切需求了,呵呵!

看下在UI层对它的调用,本DEMO没有BLL层,呵呵

    public ActionResult Index(int? loginNameSort, int? realNameSort, int page = )
{
Dictionary<Expression<Func<WebManageUsers, object>>, bool> sortList =
new System.Collections.Generic.Dictionary<Expression<Func<WebManageUsers, object>>, bool>();
if (loginNameSort.HasValue)
sortList.Add(i => i.LoginName, loginNameSort.Value == ); if (realNameSort.HasValue)
sortList.Add(i => i.RealName, realNameSort.Value == ); var model = _webManageUsersRepository.GetModel(sortList, page, );
return View(model);
}

aaarticlea/png;base64,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" alt="" />

怎么样,看了上面代码是否心里痒痒了,哈哈,赶快去开发你自己的MongoDB仓储吧!

回到目录

MongoDB学习笔记~为IMongoRepository接口添加了排序和表达式树,针对官方驱动的更多相关文章

  1. MongoDB学习笔记~为IMongoRepository接口添加了增删改方法,针对官方驱动

    回到目录 上一讲说了MongoDB官方驱动的查询功能,这回说一下官方驱动的增删改功能,驱动在升级为2.0后,相应的insert,update和delete都只有了异步版本(或者叫并行版本),这当然也是 ...

  2. MongoDB学习笔记~为IMongoRepository接口添加分页取集合的方法

    回到目录 对于数据分页,我们已经见的太多了,几乎每个列表页面都要用到分页,这已经成了一种定理了,在进行大数据展示时,如果不去分页,而直接把数据加载到内存,这简直是不可以去相向的,呵呵,在很多ORM工具 ...

  3. MongoDB学习笔记~为IMongoRepository接口更新指定字段

    回到目录 对于MongoDB来说,它的更新建议是对指定字段来说的,即不是把对象里的所有字段都进行update,而是按需去更新,这在性能上是最优的,这当然也是非常容易理解的,我们今天要实现的就是这种按需 ...

  4. MongoDB学习笔记~大叔分享批量添加—批量更新—批量删除

    回到目录 说它是批量操作,就是说将集合对象一次提交到服务器,并对数据进行持久化,如果您的代码是一次一次的提交,那不算是批量操作!在之前的mongodb仓储中并没有对批量更新和批量删除进行实现,而今天在 ...

  5. MongoDB学习笔记系列

    回到占占推荐博客索引 该来的总会来的,Ef,Redis,MVC甚至Sqlserver都有了自己的系列,MongoDB没有理由不去整理一下,这个系列都是平时在项目开发时总结出来的,希望可以为各位一些帮助 ...

  6. MongoDB学习笔记系列~目录

    MongoDB学习笔记~环境搭建 (2015-03-30 10:34) MongoDB学习笔记~MongoDBRepository仓储的实现 (2015-04-08 12:00) MongoDB学习笔 ...

  7. MongoDB学习笔记:快速入门

    MongoDB学习笔记:快速入门   一.MongoDB 简介 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统.在高负载的情况下,添加更多的节点,可以保证服务器性能.M ...

  8. PHP操作MongoDB学习笔记

    <?php/*** PHP操作MongoDB学习笔记*///*************************//**   连接MongoDB数据库  **////*************** ...

  9. mongoDB 学习笔记纯干货(mongoose、增删改查、聚合、索引、连接、备份与恢复、监控等等)

    最后更新时间:2017-07-13 11:10:49 原始文章链接:http://www.lovebxm.com/2017/07/13/mongodb_primer/ MongoDB - 简介 官网: ...

随机推荐

  1. 你想不到的!CSS 实现的各种球体效果【附在线演示】

    CSS 可以实现很多你想不到的效果,今天我们来尝试使用 CSS 实现各种球体效果.有两种方法可以实现,第一种是使用大量的元素创建实际的 3D 球体,这种方法有潜在的性能问题:另外一种是使用 CSS3 ...

  2. 简析Geoserver中获取图层列表以及各图层描述信息的三种方法

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.背景 实际项目中需要获取到Geoserver中的图层组织以及各图层 ...

  3. DotNet的JSON序列化与反序列化

    JSON(JavaScript Object Notation)JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式.在现在的通信中,较多的采用JSON数据格式,JSON有 ...

  4. Nancy之文件上传与下载

    零.前言 由于前段时间一直在找工作,找到工作后又比较忙,又加班又通宵的赶项目,所以博客有段时间没有更新了. 今天稍微空闲一点,碰巧前几天看到有园友问我Nancy中下载文件的问题,然后就趁着休息的时间写 ...

  5. sql 2012中获取表的信息,包含字段的描述

    1.获取数据库中的表 select name from sysobjects where type='U' 2.获取表字段(此处是Route表) Select name from syscolumns ...

  6. 分布式系统设计权衡之CAP

    写在最前: 1.为什么学习并记录分布式设计理念一系列相关的东西 在日常工作中系统设计评审的时候,经常会有一些同事抛出一些概念,高可用性,一致性等等字眼,他们用这些最基本的概念去反驳系统最初的设计,但是 ...

  7. Scalaz(58)- scalaz-stream: fs2-并行运算示范,fs2 parallel processing

    从表面上来看,Stream代表一连串无穷数据元素.一连串的意思是元素有固定的排列顺序,所以对元素的运算也必须按照顺序来:完成了前面的运算再跟着进行下一个元素的运算.这样来看,Stream应该不是很好的 ...

  8. 【新技术】Docker 学习笔记

    原文地址 一.Docker 简介 Docker 两个主要部件: Docker: 开源的容器虚拟化平台 Docker Hub: 用于分享.管理 Docker 容器的 Docker SaaS 平台 --  ...

  9. Lind.DDD.Events领域事件介绍

    回到目录 闲话多说 领域事件大叔感觉是最不好讲的一篇文章,所以拖欠了很久,但最终还是在2015年年前(阴历)把这个知识点讲一下,事件这个东西早在C#1.0时代就有了,那时学起来也是一个费劲,什么是委托 ...

  10. 25、ASP.NET MVC入门到精通——Spring.net-业务层仓储

    本系列目录:ASP.NET MVC4入门到精通系列目录汇总 上一节,我们已经把项目框架的雏形搭建好了,那么现在我来开始业务实现,在业务实现的过程当中,不断的来完善我们现有的框架. 1.假设我们来做一个 ...