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 { get; set; }
public int? SchoolId { get; set; }
[SugarColumn(ColumnName ="StudentName")]//数据库列名取自定义
public string Name { get; set; }
}
当我们数据库插入和更新的时候,ORM需要知道主键和自增列,我们有2种方式获取,一种直接从数据库表中读取,还有一种从实体特性中读取。一般我们建议从特性读取,因为这样不需要考虑一些特殊情况(例如一些库的特殊设置读不到)
实体类特性
注:实体类中比较常用的,是IsPrimaryKey,IsNullable,再有一个IsIgnore这个在一些自定义查询时会用的。
创建配制文件,配制数据库连接
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
});
}
}
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 许可协议。转载请注明出处!