SqlSugar 是一个简单而强大的.NET ORM(对象关系映射)框架,它支持多种数据库,包括 SQL Server、MySQL、SQLite、PostgreSQL 等。使用 SqlSugar,你可以非常轻松地进行数据库操作,比如新增、查询、更新和删除数据等。
从单条插入,批量插入,字典插入,或是DataTable插入,也可以匿名插入。
方法名 | 描述 |
---|---|
ExecuteCommand | 注意:批量插入用该方法性能最好 返回数据库受影响的行数,例如查询返回0,更新0条返回0,更新1条返回1 |
新功能 (5.1.2.4 prview01 ) ExecuteReturnPkList(); 用例: ExecuteReturnPkList(); ExecuteReturnPkList(); ExecuteReturnPkList(); | 批量返回主键 1、支持 批量返回自增 ,SqlServer和PgSql性能比较好(其它库性能差些) 2、支持返回雪花ID (等同于ExecuteReturnSnowflakeIdList) 3、支持返回GUID 不支持用触发器的主键 |
ExecuteReturnIdentity | 返回单个自增列 (int) |
ExecuteReturnBigIdentity | 返回单个自增列 (long) |
ExecuteReturnEntity | 返回实体(如果有自增会返回到实里面,不支批量自增,不支持默认值) |
ExecuteCommandIdentityIntoEntity | 给传入实体添加自增列 (不支持批量) |
ExecuteReturnSnowflakeId | 返回雪花ID 5.0.3.5支持 |
ExecuteReturnSnowflakeIdList | 返回雪花ID集合 5.0.3.5支持 |
实体类
C#public class wms_user
{
[SqlSugar.SugarColumn(IsPrimaryKey = true)]
public long id { get; set; }
public string name { get; set; }
public string dept { get; set; }
public string duty { get; set; }
public DateTime hire_date { get; set; }
[SqlSugar.SugarColumn(IsNullable = true)]
public DateTime? term_date { get; set; }
}
插入单条
这个id是GUID
C# wms_user user = new wms_user
{
id = Guid.NewGuid(),
name = "张三",
dept = "IT",
duty = "程序员",
hire_date = DateTime.Parse("2022-1-1"),
term_date = null
};
var ret= Db.Insertable(user).ExecuteCommand();
也可以用雪花ID
C#//SnowFlakeSingle.WorkId = 1; 多个服务器插入的情况下 程序启动时加上
wms_user user = new wms_user
{
name = "张三",
dept = "IT",
duty = "程序员",
hire_date = DateTime.Parse("2022-1-1"),
term_date = null
};
var ret = Db.Insertable(user).ExecuteReturnSnowflakeId();
不插入指定字段
hire_date 在数据库有默认值,这里指定了值,但因为忽略了,也不会插入表
C#wms_user user = new wms_user
{
name = "李四",
dept = "IT",
duty = "程序员",
hire_date = DateTime.Parse("2022-1-1"),
term_date = DateTime.Now
};
var ret = Db.Insertable(user).IgnoreColumns(x => x.hire_date).ExecuteReturnSnowflakeId();
只插入指定字段
C#wms_user user = new wms_user
{
name = "李四",
dept = "IT",
duty = "程序员",
hire_date = DateTime.Parse("2022-1-1"),
term_date = DateTime.Now
};
var ret = Db.Insertable(user).InsertColumns(x => new {x.id, x.name, x.dept })
.ExecuteReturnSnowflakeId();
NULL列不插入
C#wms_user user = new wms_user
{
name = "李四",
dept = "IT",
duty = "程序员",
hire_date = DateTime.Parse("2022-1-1"),
term_date = null
};
var ret = Db.Insertable(user).IgnoreColumns(ignoreNullColumn:true).ExecuteReturnSnowflakeId();
字典插入
C#var dc = new Dictionary<string, object>();
dc.Add("id", SnowFlakeSingle.Instance.NextId());
dc.Add("name", "张飞");
dc.Add("dept", "IT");
dc.Add("duty", "程序员");
dc.Add("hire_date", DateTime.Now.AddDays(-100));
var ret = Db.Insertable(dc).AS("wms_user").ExecuteCommand();
批量数据插入
C#List<wms_user> lst = new List<wms_user>();
lst.Add(new wms_user
{
id=SnowFlakeSingle.Instance.NextId(),
name = "李四1",
dept = "IT",
duty = "程序员",
hire_date = DateTime.Parse("2022-1-1"),
term_date = null
});
lst.Add(new wms_user
{
id = SnowFlakeSingle.Instance.NextId(),
name = "李四2",
dept = "IT",
duty = "程序员",
hire_date = DateTime.Parse("2022-1-1"),
term_date = null
});
lst.Add(new wms_user
{
id = SnowFlakeSingle.Instance.NextId(),
name = "李四3",
dept = "IT",
duty = "程序员",
hire_date = DateTime.Parse("2022-1-1"),
term_date = null
});
var ret = Db.Fastest<wms_user>().BulkCopy(lst);
在Winform中调用
C#List<wms_user> lst = new List<wms_user>();
lst.Add(new wms_user
{
id=SnowFlakeSingle.Instance.NextId(),
name = "李四1",
dept = "IT",
duty = "程序员",
hire_date = DateTime.Parse("2022-1-1"),
term_date = null
});
lst.Add(new wms_user
{
id = SnowFlakeSingle.Instance.NextId(),
name = "李四2",
dept = "IT",
duty = "程序员",
hire_date = DateTime.Parse("2022-1-1"),
term_date = null
});
lst.Add(new wms_user
{
id = SnowFlakeSingle.Instance.NextId(),
name = "李四3",
dept = "IT",
duty = "程序员",
hire_date = DateTime.Parse("2022-1-1"),
term_date = null
});
var t=Task.Run(() =>
{
Db.Fastest<wms_user>().BulkCopy(lst);
});
var finish = t.ContinueWith((x =>
{
//运行完成后回调
}));
本文作者:技术老小子
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!