csharp实现MongoDB的增删改查

一直在找个csharp的Mongodb帮助文档,官网的说的太少了。可惜找不到。
学习别人的代码,复制过来。

usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Linq;usingMongoDB.Bson;usingMongoDB.Driver;usingMongoDB.Attributes;usingMongoDB.Configuration;usingSystem.Linq.Expressions;usingMongoDB;usingMongoDB.Linq;namespace showPicture1{    classMongodbHelper    {        string connectionString =string.Empty;        string databaseName =string.Empty;        string collectionName =string.Empty;        //static MongodbHelper<T> mongodb;        #region 初始化操作        /// <summary>        /// 初始化操作        /// </summary>        publicMongodbHelper()        {            connectionString ="mongodb://localhost";            //创建数据连接            databaseName ="shopex";            //获取指定数据库            collectionName ="person";            //获取表        }        #endregion        #region 实现linq查询的映射配置        /// <summary>        /// 实现linq查询的映射配置        /// </summary>        publicMongoConfiguration configuration        {            get            {                var config =newMongoConfigurationBuilder();                config.Mapping(mapping =>                {                    mapping.DefaultProfile(profile =>                    {                        profile.SubClassesAre(t => t.IsSubclassOf(typeof(T)));                    });                    mapping.Map<T>();                    mapping.Map<T>();                });                config.ConnectionString(connectionString);                return config.BuildConfiguration();            }        }        #endregion        #region 插入操作        /// <summary>        /// 插入操作        /// </summary>        /// <param name="person"></param>        /// <returns></returns>        publicvoidInsert(T t)        {            using(Mongo mongo =newMongo(configuration))            {                try                {                    mongo.Connect();                    var db = mongo.GetDatabase(databaseName);                    var collection = db.GetCollection<T>(collectionName);                    collection.Insert(t,true);                    mongo.Disconnect();                }                catch(Exception)                {                    mongo.Disconnect();                    throw;                }            }        }        #endregion        #region 更新操作        /// <summary>        /// 更新操作        /// </summary>        /// <param name="person"></param>        /// <returns></returns>        publicvoidUpdate(T t,Expression<Func<T,bool>> func)        {            using(Mongo mongo =newMongo(configuration))            {                try                {                    mongo.Connect();                    var db = mongo.GetDatabase(databaseName);                    var collection = db.GetCollection<T>(collectionName);                    collection.Update<T>(t, func,true);                    mongo.Disconnect();                }                catch(Exception)                {                    mongo.Disconnect();                    throw;                }            }        }        #endregion        #region 获取集合        /// <summary>        ///获取集合        /// </summary>        /// <param name="person"></param>        /// <returns></returns>        publicList<T>List(int pageIndex,int pageSize,Expression<Func<T,bool>> func,outint pageCount)        {            pageCount =0;            using(Mongo mongo =newMongo(configuration))            {                try                {                    mongo.Connect();                    var db = mongo.GetDatabase(databaseName);                    var collection = db.GetCollection<T>(collectionName);                    pageCount =Convert.ToInt32(collection.Count());                    var personList = collection.Linq().Where(func).Skip(pageSize *(pageIndex -1))                    .Take(pageSize).Select(i => i).ToList();                    mongo.Disconnect();                    return personList;                }                catch(Exception)                {                    mongo.Disconnect();                    throw;                }            }        }        #endregion        #region 读取单条记录        /// <summary>        ///读取单条记录        /// </summary>        /// <param name="person"></param>        /// <returns></returns>        public T Single(Expression<Func<T,bool>> func)        {            using(Mongo mongo =newMongo(configuration))            {                try                {                    mongo.Connect();                    var db = mongo.GetDatabase(databaseName);                    var collection = db.GetCollection<T>(collectionName);                    var single = collection.Linq().FirstOrDefault(func);                    mongo.Disconnect();                    return single;                }                catch(Exception)                {                    mongo.Disconnect();                    throw;                }            }        }        #endregion        #region 删除操作        /// <summary>        /// 删除操作        /// </summary>        /// <param name="person"></param>        /// <returns></returns>        publicvoidDelete(Expression<Func<T,bool>> func)        {            using(Mongo mongo =newMongo(configuration))            {                try                {                    mongo.Connect();                    var db = mongo.GetDatabase(databaseName);                    var collection = db.GetCollection<T>(collectionName);                    //这个地方要注意,一定要加上T参数,否则会当作object类型处理                    //导致删除失败                    collection.Remove<T>(func);                    mongo.Disconnect();                }                catch(Exception)                {                    mongo.Disconnect();                    throw;                }            }        }        #endregion    }

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

微笑点燃希望

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值