update

28810
2019-03-21 04:39:41 +08:00
parent 24e8c43ba6
commit 3e60615c6a
2 changed files with 31 additions and 7 deletions

@@ -59,10 +59,30 @@ long id = 0;
using (var ctx = new SongContext()) {
id = await ctx.Songs.Insert(new Song { }).ExecuteIdentityAsync();
var item = await ctx.Songs.Select.Where(a => a.Id == id).FirstAsync();
var song = new Song { };
await ctx.Songs.AddAsync(song);
id = song.Id;
throw new Exception("回滚,不提交事务");
var adds = Enumerable.Range(0, 100)
.Select(a => new Song { Create_time = DateTime.Now, Is_deleted = false, Title = "xxxx" + a, Url = "url222" })
.ToList();
await ctx.Songs.AddRangeAsync(adds);
for (var a = 0; a < adds.Count; a++)
adds[a].Title = "dkdkdkdk" + a;
ctx.Songs.UpdateRange(adds);
ctx.Songs.RemoveRange(adds.Skip(10).Take(20).ToList());
//ctx.Songs.Update(adds.First());
adds.Last().Url = "skldfjlksdjglkjjcccc";
ctx.Songs.Update(adds.Last());
//throw new Exception("回滚");
await ctx.SaveChangesAsync();
}
```
@@ -90,11 +110,10 @@ OnConfiguring > AddFreeDbContext
## 说明
- DbContext 内第一个添加、删除、或修改的操作,会开启事务,如果只做查询不会打开事务
- DbContext 操作的数据在最后 SaveChanges 时才批量保存
- DbContext 内所有操作,使用同一个事务;
- 可多次执行 SaveChanges 方法,执行完后事务销毁,直到下一次事务开启
- 每个 DbContext 实例的事务是独立的
- 事务支持异步方法;
- 当实体存在自增时,或者 Add/AddRange 的时候主键值为空,会提前开启事务
- 支持同步/异步方法
## 参考资料

@@ -1,6 +1,11 @@
完整版本:年数-月-日-当日版本号FreeSql、FreeSql.Repository、FreeSql.DbContext 版本号相同。
## v0.3.21
- 增加 IUpdate IgnoreColumns 重载方法,支持传入字符串数组忽略修改;
- 完善 FreeSql.DbContext支持对象操作 + SaveChanges 最后保存操作;
## v0.3.20
- 修复 ToList 选择指定对象时,应附加所有字段查询返回;