当前位置:   article > 正文

SqlSugar:基于SQLSugar框架在 .Net环境中搭建PostgreSQL数据库访问、操作的框架,C#连接访问PostgreSQL数据库

sqlsugar

SqlSugar 是一款 老牌 .NET开源ORM框架,由果糖大数据科技团队维护和更新 ,开箱即用最易上手的ORM 

优点 :【生态丰富】【高性能】【超简单】 【功能全面】 【多库兼容】【适合产品】 【SqlSugar视频教程】 

支持 : .net framework  .net core3.1  .ne5 .net6 .net7 .net8 .net9 

特色 : 拥有全球最活跃的ORM线上论坛,比EF还要活跃,交流群人数已超过万人 ,技术支持快,口碑好。

详情请看SqlSugar 官方教程SqlSugar .Net ORM 5.X 官网 、文档、教程 - SqlSugar 5x - .NET果糖网

概览

本文描述了在.Net环境中使用SQLSugar框架连接及访问PostgreSQL数据库的详细操作过程,主要包括四个步骤:1 下载SqlSugar包  2 创建初始化并连接数据库工具类 3 创建数据操作类 4调用操作类访问数据库。

1.下载SqlSugar包

1.1 下载

​​​在NuGet包管理器中搜索sqlsugar。注:.Net Framework框架选择SqlSugar,如果是.Net框架下则选择SqlSugarCore。

1.2引用

using SqlSugar

2.连接

创建数据库访问基类,代码中加密解密步骤可以根据实际需求省略或自设
  1. using SqlSugar;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. using System.Windows.Forms.Design;
  8. namespace DemoSummaryZT.DatabaseOperation
  9. {
  10. /// <summary>
  11. /// 数据库访问基类
  12. /// </summary>
  13. public class PGSql
  14. {
  15. public static SqlSugarScope PG_db = null;
  16. /// <summary>
  17. /// 初始化数据库连接
  18. /// </summary>
  19. /// <param name="server">主机IP</param>
  20. /// <param name="port">端口</param>
  21. /// <param name="database">数据库名称</param>
  22. /// <param name="userId">用户名</param>
  23. /// <param name="passWord">密码</param>
  24. /// <param name="ifJiaMi">是否加密</param>
  25. public static void InitialPGSql(string server, string port, string database, string userId, string passWord, bool ifJiaMi)
  26. {
  27. if (ifJiaMi)
  28. {
  29. passWord = Encryption.DecryptStringFromBytes_Aes(passWord, "PostgreSQLExample");//解密密码
  30. }
  31. PG_db = new SqlSugarScope(new ConnectionConfig
  32. {
  33. ConnectionString = $"Server={server};Port={port};Database={database};User Id={userId};Password={passWord}",
  34. DbType = DbType.PostgreSQL,
  35. IsAutoCloseConnection = true,
  36. }); // 使用SqlSugarScope建立PostgreSQL数据库连接
  37. }
  38. /// <summary>
  39. /// 获取数据库Postgre当前时间
  40. /// </summary>
  41. /// <returns></returns>
  42. public DateTime GetPostgreDateTime()
  43. {
  44. return PG_db.Ado.GetDateTime("select now();");
  45. }
  46. }
  47. }

3.创建增删改查工具类

3.1创建数据库表

数据库表可以根据实际的环境创建,用SQL语句或者可视化开发工具,这里用的是DBeaver

3.2创建跟数据库表相对应的映射类

  1. using SqlSugar;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. namespace DemoSummaryZT.DataModel
  8. {
  9. /// <summary>
  10. /// 用户信息
  11. /// </summary>
  12. [SugarTable("user_table")]
  13. public class UserTable
  14. {
  15. public string ID { get; set; }
  16. /// <summary>
  17. /// 年龄
  18. public int Age { get; set; }
  19. /// <summary>
  20. /// 姓名
  21. /// </summary>
  22. public string Name { get; set; }
  23. }
  24. }

3.3分别创建增删改查工具类

注意,这里的所有操作类都继承步骤2中的PGSql类

  1. using DemoSummaryZT.DataModel;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. namespace DemoSummaryZT.DatabaseOperation
  8. {
  9. public class AddUser :PGSql
  10. {
  11. /// <summary>
  12. /// 新增用户
  13. /// </summary>
  14. public static void AddNewUser(UserTable ut)
  15. {
  16. try
  17. {
  18. var res = PG_db.Insertable(ut).ExecuteCommand();
  19. if (res > 0)
  20. {
  21. return ;
  22. }
  23. else
  24. {
  25. return ;
  26. }
  27. }
  28. catch (Exception ex)
  29. {
  30. return;
  31. }
  32. }
  33. }
  34. }
  1. using DemoSummaryZT.DataModel;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. namespace DemoSummaryZT.DatabaseOperation
  8. {
  9. public class DeleteUser:PGSql
  10. {
  11. /// <summary>
  12. /// 删除用户
  13. /// </summary>
  14. public static void Delete(string id)
  15. {
  16. try
  17. {
  18. var res = PG_db.Deleteable<UserTable>().In(it => it.ID , id).ExecuteCommand();
  19. // var res = PG_db.Deleteable<UserTable>().In(100).ExecuteCommand();
  20. if (res > 0)
  21. {
  22. return;
  23. }
  24. else
  25. {
  26. return;
  27. }
  28. }
  29. catch (Exception ex)
  30. {
  31. return;
  32. }
  33. }
  34. }
  35. }
  1. using DemoSummaryZT.DataModel;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. namespace DemoSummaryZT.DatabaseOperation
  8. {
  9. public class ModifyUser:PGSql
  10. {
  11. public static void Modify(UserTable ut)
  12. {
  13. var result = PG_db.Updateable(ut).Where(a=>a.ID==ut.ID ).ExecuteCommand();
  14. }
  15. }
  16. }
  1. using DemoSummaryZT.DataModel;
  2. using SqlSugar;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. namespace DemoSummaryZT.DatabaseOperation
  9. {
  10. public class QueryUser:PGSql
  11. {
  12. /// <summary>
  13. /// 查询所有的用户
  14. /// </summary>
  15. public static List<UserTable> QueryUserName()
  16. {
  17. List<UserTable>list = PG_db.Queryable<UserTable>().ToList();
  18. return list;
  19. }
  20. }
  21. }

4.调用操作类访问数据库

创建控制台程序,调用数据库访问工具类并运行

  1. using DemoSummaryZT.DatabaseOperation;
  2. using DemoSummaryZT.DataModel;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Threading.Tasks;
  7. using System.Windows.Forms;
  8. namespace DemoSummaryZT
  9. {
  10. internal static class Program
  11. {
  12. /// <summary>
  13. /// 应用程序的主入口点。
  14. /// </summary>
  15. [STAThread]
  16. static void Main()
  17. {
  18. //初始化数据库连接
  19. PGSql.InitialPGSql("localhost", "5432", "postgres", "postgres", "postgres", false);
  20. //查询数据
  21. Console.WriteLine("----新查询----");
  22. List<UserTable> userList = QueryUser.QueryUserName();
  23. foreach (var item in userList)
  24. {
  25. Console.WriteLine("用户名:{0}\t\t ID:{1}\t年龄:{2}\t", item.Name, item.ID, item.Age);
  26. }
  27. //新增数据
  28. Console.WriteLine("----新增数据----");
  29. UserTable userTable = new UserTable();
  30. userTable.ID = "100";
  31. userTable.Name = "新增用户";
  32. userTable.Age = 47;
  33. AddUser.AddNewUser(userTable);
  34. Console.WriteLine("----新查询----");
  35. List<UserTable> userList1 = QueryUser.QueryUserName();
  36. foreach (var item in userList1)
  37. {
  38. Console.WriteLine("用户名:{0}\t \t ID:{1}\t年龄:{2}\t", item.Name, item.ID, item.Age);
  39. }
  40. //修改数据
  41. Console.WriteLine("----修改数据----");
  42. UserTable userTable1 = new UserTable();
  43. userTable1.ID = "100";
  44. userTable1.Name = "新增用户名被修改";
  45. userTable1.Age = 47;
  46. ModifyUser.Modify(userTable1);
  47. Console.WriteLine("----新查询----");
  48. List<UserTable> userList2 = QueryUser.QueryUserName();
  49. foreach (var item in userList2)
  50. {
  51. Console.WriteLine("用户名:{0}\t \t ID:{1}\t年龄:{2}\t", item.Name, item.ID, item.Age);
  52. }
  53. //删除数据
  54. Console.WriteLine("----删除数据-新增用户----");
  55. Console.WriteLine("----删除数据-新增用户----");
  56. DeleteUser.Delete("100");
  57. Console.WriteLine("----新查询----");
  58. List<UserTable> userList3 = QueryUser.QueryUserName();
  59. foreach (var item in userList3)
  60. {
  61. Console.WriteLine("用户名:{0}\t \t ID:{1}\t年龄:{2}\t", item.Name, item.ID, item.Age);
  62. }
  63. }
  64. }
  65. }

查看运行结果

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

闽ICP备14008679号