ef4读取数据错误的问题,很简单的功能,却莫名其妙的错误

stormwen 2015-06-24 11:22:13

我用 ef4 做数据操作,将 A表的值复制到 B表去
操作很简单

var a=db.A.FirstOrDefault();
B b=new B();
b.发货地址=a.发货地址;
b.时间=a.时间;
b.到站地址=a.到站地址;
...
B.Add(b)
db.SaveChanges();

按理这个流程非常简单,没任何复杂逻辑。

可奇怪的是 “b.到站地址” 偶尔会出现 “a.物流公司” 的值

这个错误会出现在哪里?
逻辑和代码都非常简单,但偏偏会出现这么莫名其妙的问题


...全文
218 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
myhope88 2015-06-25
  • 打赏
  • 举报
回复
数据库问题吧
software_artisan 2015-06-25
  • 打赏
  • 举报
回复
程序跑起来如果没有不可知的分支,那么逻辑和 结果必然是一致的。我看你还是查一下数据库,应该是某个特定的数据错了。
stormwen 2015-06-24
  • 打赏
  • 举报
回复
引用 1 楼 sp1234 的回复:
你可以写断言,例如
Debug.Assert(B.到站地址 != "汽运");
然后开始重新测试。如果测试通过,而数据库内容有错,那么就应该向“后端”增加断言,而不是纠结于前端。。
我用了类似的测试代码,多次操作,都没有任何错误, 发布后,也是非常偶尔出现 我记录了一下发生错误时捕获的数据,也仅仅就这么一个赋值错误,是在 获取A的时候就发生错误了, 也就是说 a.到站地址 = a.物流公司 其他字段都没错误,郁闷呀! 这就是一个简单的FirstOrDefault。数据库里是没问题的,难道是ef4的bug?
  • 打赏
  • 举报
回复
这种间歇性的bug最麻烦,是不是a就错了?
  • 打赏
  • 举报
回复
你可以写断言,例如
Debug.Assert(B.到站地址 != "汽运");
然后开始重新测试。如果测试通过,而数据库内容有错,那么就应该向“后端”增加断言,而不是纠结于前端。。
开发项目背景:其一,作为学生我们已经学习了很多的基础语法,但是我们还没有参与过一个系统的项目案例,作为即将毕业的我们在求职的时候,需要具备一些项目案例的经验。其二,我们虽然在社会上工作一段时间,但是我们参与开发的项目比较少,导致沉淀的经验也比较少。其三,对新技术的研究和使用,等等上述的情况非常多。现在呢,结合生活中的应用非常多的商城系统作为开发案例,作为开发者的我们也想自己开发一个简单的系统。从用户的角度来说,该系统要具备这样的功能,用户注册,用户登录,用户中心,其中用户中心有分为,用户基本信息修改,用户收获地址维护,以及用户订单管理,包含可查阅订单详情以及我的购物车。从商城的角度来看,应该必备如下功能,商场首页,商品详情页面以及支持提交订单确认页面,产品列表页面,活动商品页面,菜单导航功能,关键字查询功能,常见问题,联系我们以及商品评价等功能。从后台的功能来看,应该具备如下功能,商城分类的维护,商城商品的维护,商品的评价维护,商品的订单管理,模拟发货过程。商城会员管理,以及会员级别维护管理,系统基础功能,包含员工,部门,角色,菜单,文章发布,系统日志,行政区域管理,代码生成工具等等。   通过了解完上述的一个开发需求,我们采用的技术方案是,数据库是Sql server 2016 ,开发平台是VS 2022 ,开发语言是微软的C#开发语言,当然在开发的过程中,我们也会用到一些技术框架。比如。.NetCore3.1 ,EF,MVC,bootstrap,Html,css,js,div。 一定要注意:课程中并不是每一个开发细节都讲到,主要是提供的源码,其中源码中核心的地方会讲到,比如怎么绑定数据到前端,怎么从数据库中读取数据等。 共5个课时,课程资料在最后一个课程中提供,两个周内更新完成

62,052

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧