当前位置: 首页 > news >正文

泸州北京网站建设景观设计展板

泸州北京网站建设,景观设计展板,企业起名,舞台地板一、问题新项目是基于 ABP vNext 框架进行开发的#xff0c;所以我要求为每层编写单元测试。在同事为某个仓储编写单元测试的时候#xff0c;发现了一个奇怪的问题。他的对某个聚合根的 A 字段进行了更新#xff0c;随后对某个导航属性 B 也进行了变更#xff0c;最后通过仓… 一、问题新项目是基于 ABP vNext 框架进行开发的所以我要求为每层编写单元测试。在同事为某个仓储编写单元测试的时候发现了一个奇怪的问题。他的对某个聚合根的 A 字段进行了更新随后对某个导航属性 B 也进行了变更最后通过仓储提供的 UpdateAsync() 方法对变更的数据进行持久化。结果再次查出来的时候发现聚合根的 A 字段倒是更新了但是导航属性 B 的内部字段没有进行变更。例如在下面的实例当中聚合根的 Name 字段变更成功但是导航属性的 Street 字段变更失败了。二、原因数据没有更新到说明问题肯定出在 UpdateAsync 方法内部通过打断点单步步入之后也没发现有什么奇怪的地方是使用的 ABP vNext 提供的默认仓储实现。又在想是否跟实体追踪有关然后看同事写得单元测试代码发现他是先使用的 GetAsync() 方法获取到实体然后手动变更了实体的属性。变更完成之后通过仓储提供的 UpdateAsync() 方法进行更新。看了很久发现它们并不是公用的一个工作单元这就导致 GetAsync() 和 UpdateAsync() 方法内部得到的 DbContext 是不一样的。在 EF Core 内部针对这种情况称之为 Disconnected entities 即断开连接的实体这个时候需要用户手动 Attch 追踪导航属性。三、解决所以有两种解决办法第一种方法是保证使用 GetAsync() 和 UpdateAsync() 方法时它们都处于一个工作单元下例如下面的伪代码。private readonly IUnitOfWorkManager _uowMgr; private readonly IRepositoryTestUser, Guid _repository;[Fact] public async Task Resolve1() {var entityId Guid.NewGuid();await _repository.InsertAsync(new TestUser{Id entityId,Name 张三,Address new TestUserAddress{City 成都市,Street 春熙路}});using (var outerUow _uowMgr.Begin()){var entity await _repository.GetAsync(entityId);entity.Name 李四;entity.Address.Street 琴台路;await _repository.UpdateAsync(entity);await outerUow.CompleteAsync();}var result await _repository.GetAsync(entityId);result.Name.ShouldBe(李四);result.Address.Street.ShouldBe(琴台路); }第二种方法变动则要大一些 导航属性没有更新的根本原因是因为在第二个工作单元中没有追踪到这个属性你只需要手动附加该导航属性即可。在下面的例子中我们重写了 UpdateAsync() 方法手动跟踪导航属性也能够达到上述效果。四、参考资料StackOverflow - Entity Framework disconnected graph and navigation propertyMSDN - Disconnected entities
http://www.ihoyoo.com/news/17946.html

相关文章:

  • 科技文化网站建设方案龙华附近网站建设
  • 西城h5网站建设手机网站建设视频教程_
  • seo 怎么建设网站外链网站流量如何赚钱
  • 深圳网站设计有哪些企查查官网官网
  • 网站开发营业执照申请网站设计的六个因素
  • 目前做网站框架wordpress 封面图像
  • 唐山长城网站建设合肥网站设计
  • 优化公司怎么优化网站的网站如何添加浮动窗口
  • 网站的一般制作流程肇庆seo服务方案
  • 兖州中材建设有限公司网站制作网页的常用软件
  • 中国建设门户网站纪念币云服务器gpu租用
  • 做资源下载网站违法吗html自动导入wordpress
  • 连云港城乡建设局网站爱用建站平台的优势
  • 建设网站企业公司网站建设的准备工作
  • 东莞长安网站开发公司网站建设流程范文
  • dz门户网站模板下载php是网站开发语言吗
  • 建设一个网站需要多久多少钱网站建设淮安
  • 大型网站的服务器架设与小型网站有什么不同衡阳网站开发培训
  • 网站怎么做长尾关键词青岛网站建设方案服务
  • 网站的建站标准免费下载软件app
  • 网站也会过期吗如何申请域名后缀
  • 用wordpress搭建知名网站国外旅游网站排名
  • 城乡建设部网站稽查执法专栏网站备案审核通过后
  • 保定网站制作设计哪个公司好手机微信网站开发教程
  • 站长之家域名查询官网网站后台怎么做图片链接
  • 哪个网站做图书广告好怎么添加网站程序
  • 宁波网站建设制作价格简述网络营销的特点
  • 高明网站设计哪家服务好企业qq怎么申请
  • 怎么学做网站PHP百度网盘登录首页
  • 做贷款的网站有哪些福建交通建设网站