(4)仓库操作类方法的实现

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 在CM.Repository下新建上下文类DbContext
    在这里插入图片描述
    在这里插入图片描述
  • 定义DbContext
    在这里插入图片描述
    DbContext.cs
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Text;

namespace CM.Repository
{
    public class DbContext<T> where T : class, new()
    {
        public DbContext()
        {
            var cnn = "server=127.0.0.1;uid=root;pwd=root;database=dotnetcms;sslmode=None";
            Db = new SqlSugarClient(new ConnectionConfig()
            {
                ConnectionString = cnn,
                DbType = DbType.MySql,
                IsAutoCloseConnection = true,
            });
            TableClient = new SimpleClient<T>(Db);
        }
        public SqlSugarClient Db { get; private set; }
        public SimpleClient<T> TableClient { get; private set; }
        public static DbContext<T> Instance = new DbContext<T>();
    }
}

using System;
using System.Collections.Generic;
using System.Linq.Expressions;
using System.Text;

namespace CM.Repository
{
    public class Repository<T> : IRepository<T> where T : class, new()
    {
        public DbContext<T> Context = DbContext<T>.Instance;
        public virtual bool Delete(dynamic id)
        {
            return Context.TableClient.Delete(id);
        }

        public bool Delete(Expression<Func<T, bool>> expression)
        {
            return Context.TableClient.Delete(expression);
        }

        public bool DeleteList(List<dynamic> ids)
        {
            return Context.TableClient.DeleteByIds(ids.ToArray());
        }

        public virtual bool DeleteList(string ids)
        {
            var list = ids.Split('_');
            var idList = new List<dynamic>();
            foreach (string j in list)
            {
                idList.Add(Convert.ToInt64(j));
            }
            return DeleteList(idList);
        }

        public virtual bool Exists(dynamic id)
        {
            return Context.Db.Queryable<T>().InSingle(id) != null;
        }

        public virtual List<T> GetList()
        {
            return Context.TableClient.GetList();
        }

        public List<T> GetList(Expression<Func<T, bool>> expression)
        {
            return Context.Db.Queryable<T>().Where(expression).ToList();
        }

        public List<T> GetList(string where)
        {
            return Context.Db.Queryable<T>().Where(where).ToList();
        }

        public virtual T GetModel(dynamic id)
        {
            return Context.TableClient.GetById(id);
        }

        public virtual T GetModel(Expression<Func<T, bool>> expression)
        {
            T model = null;
            List<T> list = GetList(expression);
            if (list.Count > 0) model = list[0];
            return model;
        }

        public virtual List<T> GetPageList(int pageIndex, int pageSize)
        {
            return Context.Db.Queryable<T>()
                .Skip((pageIndex - 1) * pageSize)
                .Take(pageSize)
                .ToList();
        }

        public List<T> GetPageList(int pageIndex, int pageSize, string where)
        {
            return Context.Db.Queryable<T>().Where(where)
                .Skip((pageIndex - 1) * pageSize)
                .Take(pageSize)
                .ToList();
        }

        public List<T> GetPageList(int pageIndex, int pageSize, Expression<Func<T, bool>> expression)
        {
            return Context.Db.Queryable<T>().Where(expression)
                .Skip((pageIndex - 1) * pageSize)
                .Take(pageSize)
                .ToList();
        }

        public bool Insert(T obj)
        {
            return Context.Db.Insertable(obj).ExecuteCommandIdentityIntoEntity();
        }

        public bool Update(T obj)
        {
            return Context.TableClient.Update(obj);
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值