У меня проблема с GraphDiff при сохранении некоторых данных, и мне просто нужно, чтобы кто-то подтвердил, если это возможно.
Я приведу пример того, что происходит:
Во-первых, я использую VS2017 (последняя редакция) EF 6, Automapper и GraphDiff.
У меня есть таблица, которая содержит следующие данные.
![Table Data](https://i.stack.imgur.com/hgvSf.png)
Как видно из приведенного списка данных для ParcelId, равного 5023, единственным отличием являются флаги IsAcquired и IsCurrent.
Я не буду вдаваться в код, который обновляет данные с установленным значением true для флага IsCurrent, поскольку это очень сложно, но по сути экран позволяет пользователям вводить значения, которые при сохранении устанавливают записи во втором списке из IsCurrent для False и вставляет три новые записи, которые имеют новые значения и для IsCurrent установлено значение True. Это дает нам возможность отменить эти записи.
Теперь у меня другой экран, который позволяет редактировать основные данные или, другими словами, данные из первой сетки.
Это использует GrphDiff для обновления данных. Данные, находящиеся во второй сетке, НЕ восстанавливаются для этого редактирования, но при сохранении операции GraphDiff видит, что данные отличаются и перезаписывается.
dbContext.UpdateGraph(a,map=>map.OwnedCollection(x => x.ParcelRight);
Мне нужно, чтобы он игнорировал записи о том, что IsCurrent равен true, и обновляет только записи, имеющие IsAcquired = true.
Я пытался:
dbContext.UpdateGraph(a,map=>map.OwnedCollection(x => x.ParcelRight
.Where(r => r.IsAcquired == true).ToList());
но это не сработало.
Я обнаружил следующее, что подразумевает, что это невозможно сделать.
Research