编辑
2025-09-22
C#
00

目录

摘要
正文

摘要

ORM全称Object Relational Mapping,即对象关系映射,是在ado.net之上又进行了一层封装,对于数据的操作,我们无需再去编写原生sql,取代代之的是基于面向对象的思想去编写类、对象、调用相应的方法等,ORM会将其转换/映射成原生SQL然后交给ado.net执行。

正文

实体类

C#
[SugarTable("dbstudent")]//当和数据库名称不一样可以设置别名 public class Student {     [SugarColumn(IsPrimaryKey = true, IsIdentity = true)]//通过特性设置主键和自增列      public int Id { getset; }     public int? SchoolId { getset; }     [SugarColumn(ColumnName ="StudentName")]//数据库列名取自定义     public string Name { getset; } }

当我们数据库插入和更新的时候,ORM需要知道主键和自增列,我们有2种方式获取,一种直接从数据库表中读取,还有一种从实体特性中读取。一般我们建议从特性读取,因为这样不需要考虑一些特殊情况(例如一些库的特殊设置读不到)

实体类特性

image.png

注:实体类中比较常用的,是IsPrimaryKey,IsNullable,再有一个IsIgnore这个在一些自定义查询时会用的。

创建配制文件,配制数据库连接

image.png

XML
<?xml version="1.0" encoding="utf-8" ?> <configuration> <appSettings> <add key="DataConnString" value="Server=localhost;Database=bzscada;Max Pool Size=50;Min Pool Size=5;Uid=sa;Pwd=123" /> </appSettings> </configuration>

创建数据库连接

C#
public class DbContext { public SqlSugarClient Db; public DbContext() { Db = new SqlSugarClient(new ConnectionConfig() { ConnectionString = System.Configuration .ConfigurationManager.AppSettings["DataConnString"]??"", DbType = SqlSugar.DbType.SqlServer, IsAutoCloseConnection = true }); } }

image.png

C#
private void btnConnection_Click(object sender, EventArgs e) { try { var Db = new SqlSugarClient(new ConnectionConfig() { ConnectionString = System.Configuration .ConfigurationManager.AppSettings["DataConnString"].ToString(), DbType = DbType.SqlServer, IsAutoCloseConnection = true }); this.Text = "连接成功"; } catch { this.Text = "连接出错"; } }

注:实际上数据库连接一般都是自动关闭,没有必要手动控制,正常每次操作数据后,都会关闭连接

创建一个实体类

C#
public class wms_inventory { [SqlSugar.SugarColumn(IsPrimaryKey = true)] public Guid id { get; set; } public string asn_no { get; set; } = ""; public string part_no { get; set; } = ""; public int qty { get; set; } public int problem_qty { get; set; } public string group_no { get; set; } = ""; public string box_no { get; set; } = ""; public string rack_no { get; set; } = ""; public string location_code { get; set; } = ""; public string site_code { get; set; } = ""; public string po { get; set; } = ""; public bool is_qdr { get; set; } public bool is_scrap { get; set; } public bool is_outbound { get; set; } [SqlSugar.SugarColumn(IsNullable = true)] public DateTime? qdr_date { get; set; } [SqlSugar.SugarColumn(IsNullable = true)] public DateTime? outbound_date { get; set; } [SqlSugar.SugarColumn(IsNullable = true)] public DateTime? ship_date { get; set; } public DateTime? created_date { get; set; } }

本文作者:技术老小子

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!