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

shepherd枸杞泡茶 2024-09-11 14:35:02 阅读 88

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.连接

创建数据库访问基类,代码中加密解密步骤可以根据实际需求省略或自设

<code>

using SqlSugar;

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms.Design;

namespace DemoSummaryZT.DatabaseOperation

{

/// <summary>

/// 数据库访问基类

/// </summary>

public class PGSql

{

public static SqlSugarScope PG_db = null;

/// <summary>

/// 初始化数据库连接

/// </summary>

/// <param name="server">主机IP</param>code>

/// <param name="port">端口</param>code>

/// <param name="database">数据库名称</param>code>

/// <param name="userId">用户名</param>code>

/// <param name="passWord">密码</param>code>

/// <param name="ifJiaMi">是否加密</param>code>

public static void InitialPGSql(string server, string port, string database, string userId, string passWord, bool ifJiaMi)

{

if (ifJiaMi)

{

passWord = Encryption.DecryptStringFromBytes_Aes(passWord, "PostgreSQLExample");//解密密码

}

PG_db = new SqlSugarScope(new ConnectionConfig

{

ConnectionString = $"Server={server};Port={port};Database={database};User Id={userId};Password={passWord}",

DbType = DbType.PostgreSQL,

IsAutoCloseConnection = true,

}); // 使用SqlSugarScope建立PostgreSQL数据库连接

}

/// <summary>

/// 获取数据库Postgre当前时间

/// </summary>

/// <returns></returns>

public DateTime GetPostgreDateTime()

{

return PG_db.Ado.GetDateTime("select now();");

}

}

}

3.创建增删改查工具类

3.1创建数据库表

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

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

<code>using SqlSugar;

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace DemoSummaryZT.DataModel

{

/// <summary>

/// 用户信息

/// </summary>

[SugarTable("user_table")]

public class UserTable

{

public string ID { get; set; }

/// <summary>

/// 年龄

public int Age { get; set; }

/// <summary>

/// 姓名

/// </summary>

public string Name { get; set; }

}

}

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

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

using DemoSummaryZT.DataModel;

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace DemoSummaryZT.DatabaseOperation

{

public class AddUser :PGSql

{

/// <summary>

/// 新增用户

/// </summary>

public static void AddNewUser(UserTable ut)

{

try

{

var res = PG_db.Insertable(ut).ExecuteCommand();

if (res > 0)

{

return ;

}

else

{

return ;

}

}

catch (Exception ex)

{

return;

}

}

}

}

using DemoSummaryZT.DataModel;

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace DemoSummaryZT.DatabaseOperation

{

public class DeleteUser:PGSql

{

/// <summary>

/// 删除用户

/// </summary>

public static void Delete(string id)

{

try

{

var res = PG_db.Deleteable<UserTable>().In(it => it.ID , id).ExecuteCommand();

// var res = PG_db.Deleteable<UserTable>().In(100).ExecuteCommand();

if (res > 0)

{

return;

}

else

{

return;

}

}

catch (Exception ex)

{

return;

}

}

}

}

using DemoSummaryZT.DataModel;

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace DemoSummaryZT.DatabaseOperation

{

public class ModifyUser:PGSql

{

public static void Modify(UserTable ut)

{

var result = PG_db.Updateable(ut).Where(a=>a.ID==ut.ID ).ExecuteCommand();

}

}

}

using DemoSummaryZT.DataModel;

using SqlSugar;

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace DemoSummaryZT.DatabaseOperation

{

public class QueryUser:PGSql

{

/// <summary>

/// 查询所有的用户

/// </summary>

public static List<UserTable> QueryUserName()

{

List<UserTable>list = PG_db.Queryable<UserTable>().ToList();

return list;

}

}

}

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

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

using DemoSummaryZT.DatabaseOperation;

using DemoSummaryZT.DataModel;

using System;

using System.Collections.Generic;

using System.Linq;

using System.Threading.Tasks;

using System.Windows.Forms;

namespace DemoSummaryZT

{

internal static class Program

{

/// <summary>

/// 应用程序的主入口点。

/// </summary>

[STAThread]

static void Main()

{

//初始化数据库连接

PGSql.InitialPGSql("localhost", "5432", "postgres", "postgres", "postgres", false);

//查询数据

Console.WriteLine("----新查询----");

List<UserTable> userList = QueryUser.QueryUserName();

foreach (var item in userList)

{

Console.WriteLine("用户名:{0}\t\t ID:{1}\t年龄:{2}\t", item.Name, item.ID, item.Age);

}

//新增数据

Console.WriteLine("----新增数据----");

UserTable userTable = new UserTable();

userTable.ID = "100";

userTable.Name = "新增用户";

userTable.Age = 47;

AddUser.AddNewUser(userTable);

Console.WriteLine("----新查询----");

List<UserTable> userList1 = QueryUser.QueryUserName();

foreach (var item in userList1)

{

Console.WriteLine("用户名:{0}\t \t ID:{1}\t年龄:{2}\t", item.Name, item.ID, item.Age);

}

//修改数据

Console.WriteLine("----修改数据----");

UserTable userTable1 = new UserTable();

userTable1.ID = "100";

userTable1.Name = "新增用户名被修改";

userTable1.Age = 47;

ModifyUser.Modify(userTable1);

Console.WriteLine("----新查询----");

List<UserTable> userList2 = QueryUser.QueryUserName();

foreach (var item in userList2)

{

Console.WriteLine("用户名:{0}\t \t ID:{1}\t年龄:{2}\t", item.Name, item.ID, item.Age);

}

//删除数据

Console.WriteLine("----删除数据-新增用户----");

Console.WriteLine("----删除数据-新增用户----");

DeleteUser.Delete("100");

Console.WriteLine("----新查询----");

List<UserTable> userList3 = QueryUser.QueryUserName();

foreach (var item in userList3)

{

Console.WriteLine("用户名:{0}\t \t ID:{1}\t年龄:{2}\t", item.Name, item.ID, item.Age);

}

}

}

}

查看运行结果



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。