SQLServer数据库之SqlSugar简单工模式数据访问简单Demo
小标 2018-10-19 来源 : 阅读 6431 评论 0

摘要:本文主要向大家介绍了SQLServer数据库之SqlSugar简单工模式数据访问简单Demo,通过具体的内容向大家展现,希望对大家学习SQLServer数据库有所帮助。

本文主要向大家介绍了SQLServer数据库之SqlSugar简单工模式数据访问简单Demo,通过具体的内容向大家展现,希望对大家学习SQLServer数据库有所帮助。

1.Model层

2.抽象层实例:
基础接口


    /// 


    /// 基础接口
    /// 


    public interface IBaseAbstract

 where T : class
    {
        #region 基础访问
        /// 
        /// 获取表达式树
        /// 

        /// 
        Queryable GetQueryable();
        /// 
        /// 获取对象
        /// 

        /// 主键ID
        /// 
        T GetModel(object ID);
        /// 
        /// 添加对象
        /// 

        /// 对象
        /// 
        object Add(T model);
        /// 
        /// 修改对象
        /// 

        /// 对象
        /// 
        bool Update(T model);
        /// 
        /// 删除对象
        /// 

        /// 对象
        /// 
        bool Delete(T model);
        /// 
        /// 删除对象---主键删除的公共方法,只支持int类型
        /// 

        /// 主键ID
        /// 
        bool Delete(int ID);
        #endregion
    }

View Code


    /// 
    /// 学生接口定义
    /// 

    public interface IStudent : IBaseAbstract
    {
        #region 获取分页
        /// 
        /// 获取分页数据
        /// 

        /// 分页信息
        /// 
        List GetPage(PageInfo info,string search);

        #endregion

        #region 获取数量
        /// 
        /// 获取总数
        /// 

        /// 
        int GetCount();
        #endregion
    }

View Code
3.实现成
基础类:


    internal class BaseOperate where T : class, new()
    {
        protected SqlSugarClient db = null;
        public BaseOperate()
        {
            db = SugarContext.GetInstance();
        }

        #region 基础访问
        /// 
        /// 获取表达式树
        /// 

        /// 
        public Queryable GetQueryable()
        {
            return db.Queryable();
        }
        /// 
        /// 获取对象
        /// 

        /// 主键ID
        /// 
        public T GetModel(object ID)
        {
            return GetQueryable().InSingle(ID);
        }
        /// 
        /// 添加对象
        /// 

        /// 对象
        /// 
        public object Add(T model)
        {
            try
            {
                return db.Insert(model);
            }
            catch (Exception ex)
            {
                throw new Exception("添加对象失败,当前类型:"+(typeof(T).Name)+ex.Message,ex);
            }
        }
        /// 
        /// 修改对象
        /// 

        /// 对象
        /// 
        public bool Update(T model)
        {
            try
            {
                return db.Update(model);
            }
            catch (Exception ex)
            {
                throw new Exception("修改对象失败,当前类型:" + (typeof(T).Name), ex);
            }
        }
        /// 
        /// 删除对象
        /// 

        /// 对象
        /// 
        public bool Delete(T model)
        {
            try
            {
                return db.Delete(model);
            }
            catch (Exception ex)
            {
                throw new Exception("删除对象失败,当前类型:" + (typeof(T).Name), ex);
            }
        }
        /// 
        /// 删除对象,默认只支持int类型
        /// 

        /// 主键ID
        /// 
        public bool Delete(int ID)
        {
            try
            {
                return db.Delete(ID);
            }
            catch (Exception ex)
            {
                throw new Exception("删除对象失败,当前类型:" + (typeof(T).Name), ex);
            }
        }
        #endregion
    }

View Code
实现类:


    /// 
    /// 学生数据访问操作
    /// 

    internal class StudentOperate : BaseOperate, IStudent
    {
        #region 获取分页
        /// 
        /// 获取分页数据
        /// 

        /// 分页信息
        /// 
        public List GetPage(PageInfo info, string search)
        {
            //排序
            var query = GetQueryable();
            if (string.IsNullOrEmpty(search) == false)
            {
                query = query.Where(q => q.sno.Contains(search) || q.sname.Contains(search));
            }
            query = query.OrderBy(q => q.sbirthday);
            info.RecordCount = query.Count();
            //分页
            return query.ToPageList(info.PageIndex, info.PageSize);
        }
        #endregion

        #region 获取数量
        /// 
        /// 获取总数
        /// 

        /// 
        public int GetCount()
        {
            return GetQueryable().Count();
        }
        #endregion
    }

View Code
4.工厂类:


    /// 
    /// 获取数据操作接口
    /// 

    public class SugarFactory
    {
        public static IStudent GetStudent()
        {
            return new StudentOperate();
        }

    }

本文由职坐标整理并发布,希望对同学们学习SQL Server有所帮助,更多内容请关注职坐标数据库SQL Server数据库频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 5
看完这篇文章有何感觉?已经有5人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved