问题描述
我用ef4做数据操作,将A表的值复制到B表去操作很简单vara=db.A.FirstOrDefault();Bb=newB();b.发货地址=a.发货地址;b.时间=a.时间;b.到站地址=a.到站地址;...B.Add(b)db.SaveChanges();按理这个流程非常简单,没任何复杂逻辑。可奇怪的是“b.到站地址”偶尔会出现“a.物流公司”的值这个错误会出现在哪里?逻辑和代码都非常简单,但偏偏会出现这么莫名其妙的问题
解决方案
解决方案二:
你可以写断言,例如Debug.Assert(B.到站地址!="汽运");
然后开始重新测试。如果测试通过,而数据库内容有错,那么就应该向“后端”增加断言,而不是纠结于前端。。
解决方案三:
这种间歇性的bug最麻烦,是不是a就错了?
解决方案四:
引用1楼sp1234的回复:
你可以写断言,例如Debug.Assert(B.到站地址!="汽运");然后开始重新测试。如果测试通过,而数据库内容有错,那么就应该向“后端”增加断言,而不是纠结于前端。。
我用了类似的测试代码,多次操作,都没有任何错误,发布后,也是非常偶尔出现我记录了一下发生错误时捕获的数据,也仅仅就这么一个赋值错误,是在获取A的时候就发生错误了,也就是说a.到站地址=a.物流公司其他字段都没错误,郁闷呀!这就是一个简单的FirstOrDefault。数据库里是没问题的,难道是ef4的bug?
解决方案五:
程序跑起来如果没有不可知的分支,那么逻辑和结果必然是一致的。我看你还是查一下数据库,应该是某个特定的数据错了。
解决方案六:
数据库问题吧
时间: 2024-08-01 13:10:46