首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用GraphDiff的条件映射

使用GraphDiff的条件映射
EN

Stack Overflow用户
提问于 2018-11-14 22:22:49
回答 1查看 32关注 0票数 0

我在保存一些数据时遇到了GraphDiff的问题,我只需要有人来确认这是否可能。

我将提供一个正在进行的示例:

首先,我使用的是VS2017 (最新版本)EF6,Automapper和GraphDiff。

我有一个表,其中包含以下数据。

正如您所看到的,这里列出了ParcelId为5023的数据,唯一的区别是IsAcquired和IsCurrent标志。

我不会进入更新数据时将IsCurrent标志设置为True的代码,因为它非常复杂,但本质上,屏幕允许用户输入值,在保存时将第二个列表中的记录从IsCurrent设置为False,并插入三条具有新值并将IsCurrent设置为true的新记录。这为我们提供了撤消这些记录的能力。

现在,我有了不同的屏幕,可以让你编辑主要数据,或者换句话说,来自第一个网格的数据。

这是使用GrphDiff来更新数据。第二个网格中的数据不会在此编辑中恢复,但在保存GraphDiff操作时,会看到数据不同并被覆盖。

代码语言:javascript
复制
dbContext.UpdateGraph(a,map=>map.OwnedCollection(x => x.ParcelRight);

我需要它来增加IsCurrent = true的记录,并且只更新IsAcquired = true的记录。

我试过了:

代码语言:javascript
复制
dbContext.UpdateGraph(a,map=>map.OwnedCollection(x => x.ParcelRight
                    .Where(r => r.IsAcquired == true).ToList());

但它并没有起作用。

我发现以下几点暗示着这是不可能的。

Research

EN

回答 1

Stack Overflow用户

发布于 2018-11-16 16:40:07

感谢所有看过这个的人,但看起来它是导致GraphDiff问题的原因,所以我更改了这次更新的代码,使用更传统的Linq to Entites解决方案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53302406

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档