-
Notifications
You must be signed in to change notification settings - Fork 892
Open
Description
如题
问题描述及重现代码:
try
{
freeSqlObj.Transaction(() => {
var rows = freeSqlObj.Update<OrderEntity>()
.SetDto(new { code = "1111" })
.Where(x => x.Id == 1)
.ExecuteAffrows();
//if (rows <= 0)
// throw new Exception("11111");
Console.WriteLine($"数据库影响行数:{rows}!");
try
{
rows = freeSqlObj.Update<UserEntity>()
.SetDto(new { code = Guid.NewGuid().ToString("N") })//(string)null
.Where(x => x.Id == 1)
.ExecuteAffrows();
if (rows <= 0)
throw new Exception("11111"); //这个异常可以拦截 并不影响上一句话
Console.WriteLine($"数据库影响行数:{rows}!");
rows = freeSqlObj.Update<UserEntity>()
.SetDto(new { code = (string)null })//这个值数据库不能为空,这里数据库抛出异常 拦截后 会导致整个事务回滚 try拦截无效
.Where(x => x.Id == 1)
.ExecuteAffrows();
Console.WriteLine($"数据库影响行数:{rows}!");
}
catch (Exception e)
{
Console.WriteLine("数据库异常!");
}
rows = freeSqlObj.Update<SqlLogEntity>()
.SetDto(new { code = Guid.NewGuid().ToString("N") })
.Where(x => x.Id == 1)
.ExecuteAffrows();
Console.WriteLine($"数据库影响行数:{rows}!");
});
}
catch (Exception e)
{
Console.WriteLine($"数据库执行:{e.Message}!");
}数据库版本
sql server 2012 sp1
安装的Nuget包
FreeSql.All V 3.5.213
.net framework/. net core? 及具体版本
. net 8.0
Metadata
Metadata
Assignees
Labels
No labels