C# ORM模式之 SqlSugar使用

一、SqlSugar介绍及分析

SqlSugar是一款 老牌 .NET 开源ORM框架,连接DB特别方便

支持数据库:MySql、SqlServer、Sqlite、Oracle 、 postgresql、达梦、人大金仓

官方文档:http://www.donet5.com/Home/Doc

SqlSugar的优点:

1、高性能:不夸张的说,去掉Sql在数据库执行的时间,SqlSugar是EF数倍性能,另外在批量操作和一对多查询上也有不错的SQL优化;

2、高扩展性 :支持自定义拉姆达函数解析、扩展数据类型、支持自定义实体特性,外部缓存等;

3、稳定性和技术支持:  虽然不是官方ORM, 但在稳定性上也是有着数年用户积累,如果遇到问题可以在GITHUB提出来,会根据紧急度定期解决;

4、功能全面:虽然SqlSugar小巧可功能并不逊色于EF框架

5、创新、持续更新 ,向下兼容

二、SqlSugar项目中的使用

1、包的引用:

 2、全局引用:

3、接口中常用方法封装

1)、ISqlSugarRepository接口封装

public interface ISqlSugarRepository<TEntity> : IBaseRepository where TEntity : class
{
    /// <summary>
    /// 
    /// </summary>
    ISqlSugarClient Db { get; }

    /// <summary>
    /// 执行查询SQL语句
    /// 只支持查询操作,并且支持拉姆达分页
    /// </summary>
    /// <param name="sql"></param>
    /// <returns></returns>
    Task<List<TEntity>> ExecuteSql(string sql);

    /// <summary>
    /// 通过Ado方法执行SQL语句
    /// 支持任何SQL语句
    /// </summary>
    /// <param name="sql"></param>
    /// <param name="whereObj"></param>
    /// <returns></returns>
    Task<List<TEntity>> ExecuteAllSql(string sql, object whereObj = null);

    /// <summary>
    /// 插入实体
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    Task<int> Add(TEntity model);

    /// <summary>
    /// 批量插入实体
    /// </summary>
    /// <param name="listEntity"></param>
    /// <returns></returns>
    Task<int> Add(List<TEntity> listEntity);

    /// <summary>
    /// 根据实体删除数据
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    Task<bool> Delete(TEntity model);

    /// <summary>
    /// 根据实体集合批量删除数据
    /// </summary>
    /// <param name="models"></param>
    /// <returns></returns>
    Task<bool> Delete(List<TEntity> models);

    /// <summary>
    /// 根据ID删除数据
    /// </summary>
    /// <param name="id"></param>
    /// <returns></returns>
    Task<bool> DeleteById(object id);

    /// <summary>
    /// 根据IDs批量删除数据
    /// </summary>
    /// <param name="ids"></param>
    /// <returns></returns>
    Task<bool> DeleteByIds(List<object> ids);

    /// <summary>
    /// 更新实体
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    Task<bool> Update(TEntity model);

    /// <summary>
    /// 批量更新实体
    /// </summary>
    /// <param name="listEntity"></param>
    /// <returns></returns>
    Task<int> Update(List<TEntity> listEntity);

    /// <summary>
    /// 根据ID查询一条数据
    /// </summary>
    /// <param name="objId"></param>
    /// <returns></returns>
    Task<TEntity> GetById(object objId);

    /// <summary>
    /// 根据条件查询数据是否存在
    /// </su
  • 11
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值