最佳实践
C#事务处理最佳实践:别再让“主表存了、明细丢了”的破事发生
本文讲了保存主表+明细+条件,要么全成要么全败,事务得这么写:用using TransactionScope自动回滚,try-catch放事务里面,别把异常直接扔给用户。新增主表后记得回填自增ID,更新模式要先删干净旧的再插新的。每个DAL返回值都要检查,失败了立刻停止,别调Complete()。导航属性用Include提前加载,不然DbContext一关就崩。隔离级别别用默认的Serializable,指定ReadCommitted更稳。照着这个套路写,数据一致性稳稳的。
Dispose 不释放?C# 资源泄漏的 3 种隐蔽场景排查
大家好,我是码农刚子。最近在做项目代码审查时,发现了一个有意思的现象:大家都知道要用 using 或 Dispose() 来释放资源,但真正遇到资源泄漏时,还是一脸懵。有人问我:"刚哥,我都调用 Dispose() 了,为什么内存还在涨?"说实话,这个问题问得好。因为 Dispose 不释放 的坑,远比你想象的要深。今天我就从 6 年 .NET 开发的经验出发,给你揭露 3 种最隐蔽、最容易踩的资源泄漏场景。
字符串拼接用“+”还是 StringBuilder?别再凭感觉写了
问题:拼接字符串,到底用哪个? 先问个实在的问题:你在代码里怎么拼接字符串? 很多兄弟可能是这么写的: string str ="Hello"+" "+"World"; //当然这里只是举个例子 也有的会在循环里这么干: string resu...