使用Dapper封装的项目底层代码

前言:

像我们程序员遇到最多的就是需求变更,变更了需求,可能涉及到数据库的变更,每次copy底层代码,说实在的很烦,都是些无脑的工作,所以就封装了下底层,此底层是依靠Dapper来封装的,希望能给大家带来一定的帮助。

项目结构:

采用的是简单三层,感兴趣的可以再次封装。

项目介绍:

Web:

此模块主要是为了展示底层方法的调用,给大家展示的Demo。

Model:

这里保存的是一个个数据库是实体类。

需要注意一下几点:

  1. 每个Class请标注对应的数据库表名,如:[Table("City")]
  2. 此外,数据库的主键字段请标注[Key]

上面这两点主要是用于底层的一些方法。

Dal:

  1. DBConfig中主要是数据库的配置,设计的时候考虑了一下读写分离,所以用了2个配置。
  2. DapperHelper底层的核心代码封装,一些简单的增查删改的方法的封装,一般场景的当表操作应该是够了的。

Bll:

  1. 这里核心代码就只有一个BaseBll,用于关联Dal底层方法的。
  2. 后续新增的所有Bll请都继承BaseBll即可使用,如:CityBll : BaseBll<City>,这里的City和CityModel

使用教程:

   /// <summary>
        /// 查询所有
        /// </summary>
        /// <returns></returns>
        public async Task<List<City>> GetCityAll()
        {
            var list = await cityBll.GetListByfilterAsync(new City ());
            return list;
        }
        /// <summary>
        /// 带条件查询集合
        /// </summary>
        /// <param name="cityCode"></param>
        /// <returns></returns>
        public async Task<List<City>> GetCityAll(string cityCode)
        {
            var list = await cityBll.GetListByfilterAsync(new City() {CityCode= cityCode },
               new List<string> { "CityCode" } );
            return list;
        }
        /// <summary>
        /// 新增,新增后的id在model中
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        public async Task<City> Create(City cityModel)
        {
            //返回是否新增成功
            var result = await cityBll.InsertAsync(cityModel);
            return cityModel;
        }
        /// <summary>
        /// 根据主键id修改
        /// </summary>
        /// <param name="cityModel"></param>
        /// <returns></returns>
        public async Task<City> UpdateById(City cityModel)
        {
            var result = await cityBll.UpdateByPrimaryKeyAsync(cityModel);
            return cityModel;
        }
        /// <summary>
        /// 根据条件修改部分值
        /// </summary>
        /// <param name="cityModel"></param>
        /// <returns></returns>
        public async Task<City> Update(City cityModel)
        {
            var result = await cityBll.UpdateByBatch(cityModel,new List<string>() { "要修改的列"},new City (){CityCode="Where的值" },new List<string> { "Where的列(CityCode)" });

            //例如此处根据code1修改name为上海
            cityModel.CityCode = "1";
            cityModel.CityName = "上海";
            var result1 = await cityBll.UpdateByBatch(cityModel, new List<string>() { "CityName" }, new City() { CityCode = cityModel.CityCode }, new List<string> { "CityCode" });

            return cityModel;
        }
        /// <summary>
        /// 根据主键删除
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public async Task<bool> Delete(int id)
        {
            //根据主键id删除
            var result = await cityBll.DeleteByPrimaryKeyAsync(id);
            
            return result;
        }
        /// <summary>
        /// 根据设置的条件删除
        /// </summary>
        /// <param name="cityCode"></param>
        /// <returns></returns>
        public async Task<bool> Delete(string cityCode)
        {
            //根据主键id删除
            var result = await cityBll.DeleteByFilterAsync(new City() { CityCode=cityCode},
            new List<string>() { "CityCode" });
            return result;
        }

代码已经上传了,大家可以下载看看,一起学习,一起进步

地址为:https://download.csdn.net/download/u012394290/10579474

猜你喜欢

转载自blog.csdn.net/u012394290/article/details/81360300