当前位置:   article > 正文

NET中使用SQLSugar操作sqlserver数据库_sqlserver生成脚本带数据 .net代码实现

sqlserver生成脚本带数据 .net代码实现

目录

一、SqlSugar是什么?

二、迁移和建表

1.建立实体

2.创建上下文类

3.在Program中添加SqlSugar服务

4.在控制器中注入上下文类

三、简单实现CURD功能

总结


一、SqlSugar是什么?

SqlSugar是一款老牌 .NET 开源ORM框架。

主要特点:简单易用、功能齐全、高性能、轻量级、服务齐全、支持全自动分表组件,SAAS分库,大数据处理的ORM。

二、迁移和建表

安装包: SqlSugarCore 

1.建立实体

代码如下(示例):

  1. [SugarTable("T_Book")]//设置表名为TableName,如果不设置取类名为表名
  2. public class Book
  3. {
  4. [SugarColumn(IsIdentity = true, IsPrimaryKey = true)]
  5. public int Id { get; set; }
  6. [SugarColumn(Length =50)]//设置长度
  7. public string AuthorName { get; set; }
  8. public float?Price { get; set; }
  9. [SugarColumn(IsNullable = true)]//可以为NULL
  10. public DateTime PubTime { get; set; }
  11. public string Title { get; set; }
  12. }

 

2.创建上下文类

代码如下(示例):

  1. public class SqlSugarContext
  2. {
  3. public readonly ISqlSugarClient db;
  4. public SqlSugarContext(ISqlSugarClient db)
  5. {
  6. this.db = db;
  7. }
  8. public void CreateTable()
  9. {
  10. //建库 如果不存在创建数据库,存在不会重复创建
  11. db.DbMaintenance.CreateDatabase();
  12. //建表
  13. db.CodeFirst.SetStringDefaultLength(100).//设置默认字符串类型的字段长度
  14. BackupTable().InitTables(new Type[] //支持多表创建
  15. {
  16. typeof(Book),
  17. });
  18. }
  19. }

3.在Program中添加SqlSugar服务

代码如下(示例):

  1. builder.Services.AddHttpContextAccessor();
  2. //注册SqlSugar用AddScoped
  3. builder.Services.AddScoped(sp => new SqlSugarContext(
  4. new SqlSugarClient(new ConnectionConfig()
  5. {
  6. ConnectionString = builder.Configuration.GetConnectionString("SqlServer:Connection"), //数据库连接串
  7. DbType = DbType.SqlServer, //数据库类型
  8. IsAutoCloseConnection = true, //自动释放
  9. MoreSettings = new ConnMoreSettings()
  10. {
  11. SqlServerCodeFirstNvarchar = true,//建表字符串默认Nvarchar
  12. }
  13. },
  14. db =>
  15. {
  16. db.Aop.OnLogExecuting = (sql, pars) =>
  17. {
  18. Console.WriteLine(sql);//生成执行Sql语句
  19. };
  20. }
  21. )
  22. ));

4.在控制器中注入上下文类

代码如下(示例):

  1. [Route("api/[controller]/[action]")]
  2. [ApiController]
  3. public class InitializationController : ControllerBase
  4. {
  5. public readonly SqlSugarContext _context;
  6. public InitializationController(SqlSugarContext context) {
  7. this._context = context;
  8. }
  9. /// <summary>
  10. /// 创建表
  11. /// </summary>
  12. /// <returns></returns>
  13. [HttpGet]
  14. public IActionResult CreateTable( )
  15. {
  16. _context.CreateTable();
  17. return Ok("执行成功!");
  18. }
  19. }

 运行项目,执行创建表的接口

再去数据库看,库和表都建立好了

如果想增加新的字段、修改字段,建新实体再次执行该接口即可

三、简单实现CURD功能

代码如下(示例):

  1. [Route("api/[controller]/[action]")]
  2. [ApiController]
  3. public class BookController : ControllerBase
  4. {
  5. public readonly SqlSugarContext _context;
  6. public BookController(SqlSugarContext context) {
  7. this._context = context;
  8. }
  9. /// <summary>
  10. /// 新增
  11. /// </summary>
  12. /// <returns></returns>
  13. [HttpPost]
  14. public IActionResult InsertBook(Book req)
  15. {
  16. int result= _context.db.Insertable<Book>(req).ExecuteCommand();
  17. return Ok($"成功插入{result}条");
  18. }
  19. /// <summary>
  20. /// 编辑
  21. /// </summary>
  22. /// <returns></returns>
  23. [HttpPost]
  24. public IActionResult UpdateBook(Book req)
  25. {
  26. int result = _context.db.Updateable<Book>(req).ExecuteCommand();
  27. return Ok($"成功修改{result}条");
  28. }
  29. /// <summary>
  30. /// 删除
  31. /// </summary>
  32. /// <param name="Id"></param>
  33. /// <returns></returns>
  34. [HttpGet]
  35. public IActionResult DeleteBook(int Id)
  36. {
  37. int result = _context.db.Deleteable<Book>().In(Id).ExecuteCommand();
  38. return Ok($"成功删除{result}条");
  39. }
  40. /// <summary>
  41. /// 查询
  42. /// </summary>
  43. /// <param name="pagenumber"></param>
  44. /// <param name="pageSize"></param>
  45. /// <returns></returns>
  46. [HttpGet]
  47. public IActionResult QueryBook(int pagenumber=1, int pageSize=20) {
  48. int totalCount = 0;
  49. //单表分页
  50. var page = _context.db.Queryable<Book>().ToPageList(pagenumber, pageSize, ref totalCount);
  51. var data = new
  52. {
  53. page,
  54. totalCount
  55. };
  56. return Ok(data);
  57. }
  58. }


总结

SqlSugar比起Migrationn数据迁移的方式建库建表,简化很多。ISqlSugarClient封装了常用的CURD功能,并且支持批量操作,在性能方面也不错,是很容易上手的一款orm框架。

更多使用方法查看官方文档

 https://www.donet5.com/Home/Doc

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号