当前位置:   article > 正文

C# ORM模式之 SqlSugar使用

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接口封装

  1. public interface ISqlSugarRepository<TEntity> : IBaseRepository where TEntity : class
  2. {
  3. /// <summary>
  4. ///
  5. /// </summary>
  6. ISqlSugarClient Db { get; }
  7. /// <summary>
  8. /// 执行查询SQL语句
  9. /// 只支持查询操作,并且支持拉姆达分页
  10. /// </summary>
  11. /// <param name="sql"></param>
  12. /// <returns></returns>
  13. Task<List<TEntity>> ExecuteSql(string sql);
  14. /// <summary>
  15. /// 通过Ado方法执行SQL语句
  16. /// 支持任何SQL语句
  17. /// </summary>
  18. /// <param name="sql"></param>
  19. /// <param name="whereObj"></param>
  20. /// <returns></returns>
  21. Task<List<TEntity>> ExecuteAllSql(string sql, object whereObj = null);
  22. /// <summary>
  23. /// 插入实体
  24. /// </summary>
  25. /// <param name="model"></param>
  26. /// <returns></returns>
  27. Task<int> Add(TEntity model);
  28. /// <summary>
  29. /// 批量插入实体
  30. /// </summary>
  31. /// <param name="listEntity"></param>
  32. /// <returns></returns>
  33. Task<int> Add(List<TEntity> listEntity);
  34. /// <summary>
  35. /// 根据实体删除数据
  36. /// </summary>
  37. /// <param name="model"></param>
  38. /// <returns></returns>
  39. Task<bool> Delete(TEntity model);
  40. /// <summary>
  41. /// 根据实体集合批量删除数据
  42. /// </summary>
  43. /// <param name="models"></param>
  44. /// <returns></returns>
  45. Task<bool> Delete(List<TEntity> models);
  46. /// <summary>
  47. /// 根据ID删除数据
  48. /// </summary>
  49. /// <param name="id"></param>
  50. /// <returns></returns>
  51. Task<bool> DeleteById(object id);
  52. /// <summary>
  53. /// 根据IDs批量删除数据
  54. /// </summary>
  55. /// <param name="ids"></param>
  56. /// <returns></returns>
  57. Task<bool> DeleteByIds(List<object> ids);
  58. /// <summary>
  59. /// 更新实体
  60. /// </summary>
  61. /// <param name="model"></param>
  62. /// <returns></returns>
  63. Task<bool> Update(TEntity model);
  64. /// <summary>
  65. /// 批量更新实体
  66. /// </summary>
  67. /// <param name="listEntity"></param>
  68. /// <returns></returns>
  69. Task<int> Update(List<TEntity> listEntity);
  70. /// <summary>
  71. /// 根据ID查询一条数据
  72. /// </summary>
  73. /// <param name="objId"></param>
  74. /// <returns></returns>
  75. Task<TEntity> GetById(object objId);
  76. /// <summary>
  77. /// 根据条件查询数据是否存
声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号