博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MongoDB 工具助手类(.NET)
阅读量:6254 次
发布时间:2019-06-22

本文共 3393 字,大约阅读时间需要 11 分钟。

在开发过程中,需要用到MongoDB,本身MongoDB自己对类的封装就特别好了。为了更加符合我们平时的开发使用,我现在进行了一个简单的封装操作。

连接数据库类:MongoDBContext

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Configuration;using MongoDB.Bson;using MongoDB.Driver;using MongoDB.Driver.Builders;using MongoDB.Driver.Linq;namespace XXXXX.MongoDB{    public class MongoDBContext    {        // 数据库链接        private readonly MongoDatabase database;        public MongoDBContext()            : this(ConfigurationManager.AppSettings["DefaultMongoDBConnection"], ConfigurationManager.AppSettings["DefaultMonoDbDatabase"])        {        }        ///         /// 构造函数。根据指定连接字符串和数据库名        ///         /// 连接字符串        /// 数据库名        public MongoDBContext(string connectionString, string dbName)        {            if (string.IsNullOrEmpty(connectionString))            {                throw new ArgumentNullException("connectionString is null");            }            if (string.IsNullOrEmpty(dbName))            {                throw new ArgumentNullException("dbName is null");            }            var client = new MongoClient(connectionString);            var server = client.GetServer();            this.database = server.GetDatabase(dbName);        }        ///         /// 获取当前连接数据库的指定集合【依据类型】        ///         /// 
///
public MongoCollection
Collection
() { return database.GetCollection
(typeof(T).Name); } }}

服务操作类:MongoDBService

using MongoDB.Driver.Builders;using System;using System.Collections.Generic;using System.Linq;using System.Linq.Expressions;using System.Text;using System.Threading.Tasks;namespace XXXXX.MongoDB{    public class MongoDBService
: IMongoDBService
where T : class,new() { MongoDBContext mc = new MongoDBContext(); ///
/// 查询符合条件的集合 /// ///
///
public IEnumerable
GetList() { var query = Query
.Where(o => true); return mc.Collection
().Find(query); } ///
/// 查询符合条件的集合 /// ///
///
public IEnumerable
GetList(Expression
> whereLambda) { var query = Query
.Where(whereLambda); return mc.Collection
().Find(query); } ///
/// 查询一条记录 /// ///
///
public T GetOne(Expression
> whereLambda) { var query = GetList(whereLambda).FirstOrDefault(); return query; } ///
/// 增加 /// ///
public void Insert(T entity) { mc.Collection
().Insert(entity); } ///
/// 批量增加 /// ///
public void InsertAll(IEnumerable
entitys) { mc.Collection
().InsertBatch(entitys); } ///
/// 更新一个实体 /// ///
public void Update(T entity) { mc.Collection
().Save(entity); } ///
/// 删除 /// ///
public void Remove(Expression
> whereLambda) { var query = Query
.Where(whereLambda); mc.Collection
().Remove(query); } }}

上面方法封装完后,我们就可以直接使用了。使用很简单,比如,我有一个ActivityModel实体,使用时,如下:

public void activityTest()        {            var activityDb = new MongoDBService
(); var activityList = activityDb.GetList().ToList(); var activity = activityDb.GetOne(o => o.Id==ObjectId.Parse("54d9aecd89f0bd14d81a63a7")); var xxx = activity.To(); }

 

转载地址:http://tqjsa.baihongyu.com/

你可能感兴趣的文章
云计算促进健全现有IT管理体制
查看>>
山西电信以数据安全保障IT战略转型
查看>>
大连银行应用Informatica数据脱敏方案
查看>>
F5发布最新文件虚拟化存储产品ARX 4000
查看>>
【ICCV 目标跟踪性能最优】首个应用残差学习的深度目标跟踪算法
查看>>
电信大数据变现带来的跨界效应
查看>>
cncert网络安全周报35期 境内被植入后门的政府网站112个 环比上涨24.4%
查看>>
校际合作+无线教育 打造“互联学校”新模式
查看>>
CommVault在北京推出下一代产品Simpana 8
查看>>
如何利用云计算最大限度地改善数据存储
查看>>
亚信安全:以产品融合方案应对运营商复杂多面安全风险
查看>>
阿里新一代分布式任务调度平台Schedulerx2.0破土而出
查看>>
Active Directory中常见的安全问题及解决方案
查看>>
瞻博网络:旨将物联网与数据中心连在一起
查看>>
借助LVS+Keepalived实现负载均衡
查看>>
Android应用瘦身,从18MB到12.5MB
查看>>
物联网:危机在哪,机会就在哪
查看>>
Java 异步回调机制实例解析
查看>>
携手8Manage CRM建设企业数字化营销之路
查看>>
图解javascript this指向什么?
查看>>