Linq2EF: обновление записей с результатом CheckBoxList / набора значений идентификаторов - PullRequest
0 голосов
/ 19 октября 2010

Скажем, у меня есть CheckBoxList на странице, отражающей данные таблицы.Пользователь снимает флажки с ранее проверенных элементов и проверяет те, которые не были проверены.Я хочу обновить базу данных с помощью LINQ2EF, чтобы оставшиеся записи соответствовали вновь отправленным проверенным элементам.

Другими словами, когда страница отправляется, я получаю String[] проверенных идентификаторов.Затем мне нужно обновить базу данных:

  1. Удалить записи, которые были там, но теперь не имеют идентификатора
  2. Добавить записи, которых не было, но теперь проверенные идентификаторы
  3. Оставьте записи, которые были там, и которые все еще проверяются, в одиночку.

Сложность проблемы, представленные идентификаторы находятся в массиве строк, но объекты данных имеют идентификатор какint.

1 Ответ

0 голосов
/ 21 октября 2010

Хм, вы пишете код.

var submittedAsInts = submittedAsString.Select(s => int.Parse(s));
var toAdd = submittedAsInts.Where(i => !existingEntity.SomeProperty.Any(p => p.Id == i));
var toDelete = existingEntity.SomeProperty.Where(p => !submittedAsInts.Contains(p.Id));
foreach (var delId in toDelete)
{
    var o = existingEntity.SomeProperty.Single(p => p.Id == delID);
    existingEntity.SomeProperty.Remove(o);
    Context.DeleteObject(o);
}
// similarly for insert.
...