网站首页 > 知识剖析 正文
摘要
从单条插入,批量插入,字典插入,或是DataTable插入,也可以匿名插入。
正文
摘要
从单条插入,批量插入,字典插入,或是DataTable插入,也可以匿名插入。
正文
方法名 | 描述 |
ExecuteCommand | 注意:批量插入用该方法性能最好<br><br>返回数据库受影响的行数,例如查询返回0,更新0条返回0,更新1条返回1 |
新功能 (5.1.2.4 prview01 )<br><br> ExecuteReturnPkList<T>();<br><br> 用例:<br><br> ExecuteReturnPkList<int>();<br><br> ExecuteReturnPkList<Long>();<br><br> ExecuteReturnPkList<Guid>(); | 批量返回主键 <br><br>1、支持 批量返回自增 ,SqlServer和PgSql性能比较好(其它库性能差些)<br><br>2、支持返回雪花ID (等同于 |
ExecuteReturnIdentity | 返回单个自增列 (int) |
ExecuteReturnBigIdentity | 返回单个自增列 (long) |
ExecuteReturnEntity | 返回实体(如果有自增会返回到实里面,不支批量自增,不支持默认值) |
ExecuteCommandIdentityIntoEntity | 给传入实体添加自增列 (不支持批量) |
ExecuteReturnSnowflakeId | 返回雪花ID 5.0.3.5支持 |
ExecuteReturnSnowflakeIdList | 返回雪花ID集合 5.0.3.5支持 |
实体类
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
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
//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 在数据库有默认值,这里指定了值,但因为忽略了,也不会插入表
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();
只插入指定字段
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列不插入
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();
字典插入
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();
批量数据插入
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中调用
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 =>
{
//运行完成后回调
}));
- 上一篇: 接口测试结果字段太多,断言烦不胜烦,DeepDiff帮你一键搞定
- 下一篇:已经是最后一篇了
猜你喜欢
- 2025-07-21 接口测试结果字段太多,断言烦不胜烦,DeepDiff帮你一键搞定
- 2025-07-21 多个字段值合并到一个字段值编程(把多个字符串合并)
- 2025-07-21 多表关联查询的性能优化技巧:预关联
- 最近发表
- 标签列表
-
- xml (46)
- css animation (57)
- array_slice (60)
- htmlspecialchars (54)
- position: absolute (54)
- datediff函数 (47)
- array_pop (49)
- jsmap (52)
- toggleclass (43)
- console.time (63)
- .sql (41)
- ahref (40)
- js json.parse (59)
- html复选框 (60)
- css 透明 (44)
- css 颜色 (47)
- php replace (41)
- css nth-child (48)
- min-height (40)
- xml schema (44)
- css 最后一个元素 (46)
- location.origin (44)
- table border (49)
- html tr (40)
- video controls (49)