mirror of
https://github.com/dotnetcore/FreeSql.git
synced 2026-02-14 04:10:56 +08:00
update
3
事务.md
3
事务.md
@@ -13,6 +13,7 @@ FreeSql现实了简单数据库事务方法,脏读等事务相关方法均未
|
|||||||
```csharp
|
```csharp
|
||||||
//假设已经有了其他wiki页的IFreeSql声明
|
//假设已经有了其他wiki页的IFreeSql声明
|
||||||
fsql.Transaction(() => {
|
fsql.Transaction(() => {
|
||||||
|
|
||||||
var affrows = fsql.Update<User>().Set(a => a.Wealth - 100)
|
var affrows = fsql.Update<User>().Set(a => a.Wealth - 100)
|
||||||
.Where(a => a.Wealth >= 100)
|
.Where(a => a.Wealth >= 100)
|
||||||
//判断别让用户余额扣成负数
|
//判断别让用户余额扣成负数
|
||||||
@@ -21,6 +22,7 @@ fsql.Transaction(() => {
|
|||||||
throw new Exception("用户余额不足");
|
throw new Exception("用户余额不足");
|
||||||
//抛出异常,事务退出
|
//抛出异常,事务退出
|
||||||
}
|
}
|
||||||
|
|
||||||
affrows = fsql.Update<Goods>().Set(a => a.Stock - 1)
|
affrows = fsql.Update<Goods>().Set(a => a.Stock - 1)
|
||||||
.Where(a => a.Stock > 0)
|
.Where(a => a.Stock > 0)
|
||||||
//判断别让用库存扣成负数
|
//判断别让用库存扣成负数
|
||||||
@@ -30,6 +32,7 @@ fsql.Transaction(() => {
|
|||||||
//抛出异常,回滚事务,事务退出
|
//抛出异常,回滚事务,事务退出
|
||||||
//用户余额的扣除将不生效
|
//用户余额的扣除将不生效
|
||||||
}
|
}
|
||||||
|
|
||||||
//程序执行在此处,说明都扣成功了,事务完成并提交
|
//程序执行在此处,说明都扣成功了,事务完成并提交
|
||||||
});
|
});
|
||||||
```
|
```
|
||||||
|
|||||||
Reference in New Issue
Block a user