MongoDB连接数据量 配合ET框架使用

MongoDB连接数据库 配合ET框架使用

.

// An highlighted block
using ETModel;
using Microsoft.IdentityModel.Protocols;
using MongoDB.Bson;
using MongoDB.Driver;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using WebServer.Modes;

namespace WebServer.ServerLogic
{
    public class Db
    {
        public static string connStr;

        public static  string dbName;
        public static string DBRecordName;

        private static IMongoDatabase db = null;

        private static readonly object lockHelper = new object();

        private Db() { }

        public static IMongoDatabase GetDb()
        {
            if (db == null)
            {
                lock (lockHelper)
                {
                    if (db == null)
                    {
                        var client = new MongoClient(connStr);
                        db = client.GetDatabase(dbName);
                    }
                }
            }
            return db;
        }
    }
    public class dbProxy
    {
        public async Task<List<T>> QueryJson<T>(string json)
        {
            IMongoCollection<T> collection = Db.GetDb().GetCollection<T>(typeof(T).Name);
            BsonDocument document = MongoDB.Bson.Serialization.BsonSerializer.Deserialize<BsonDocument>(json);
            return collection.Find(document).ToList();
        }
        public async Task<T> Query<T>(long id)
        {
            IMongoCollection<T> collection = Db.GetDb().GetCollection<T>(typeof(T).Name);
            var query = new BsonDocument("_id", id);
            return collection.Find(query).ToList().FirstOrDefault();
        }
        public async Task Save<T>(T entity, bool isSave = true)
        {

            IMongoCollection<T> collection = Db.GetDb().GetCollection<T>(typeof(T).Name);
            await collection.InsertOneAsync(entity);
        }
        public async Task Update<T>(T entity,long id)
        {
            IMongoCollection<T> collection = Db.GetDb().GetCollection<T>(typeof(T).Name);
            var filter = Builders<T>.Filter.Eq("Id", id);
            await collection.ReplaceOneAsync(filter, entity);
        }
        public async Task delete<T>(T entity, long id)
        {
            IMongoCollection<T> collection = Db.GetDb().GetCollection<T>(typeof(T).Name);
            var filter = Builders<T>.Filter.Eq("Id", id);
            collection.DeleteOne(filter);
        }
    }
    
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值