У меня есть ежедневный XML-канал, который содержит все записи каждый день. Они должны быть обработаны и загружены в базу данных, то есть те, которые не включены в фид для дня 2, которые были в фиде дня 1, должны быть удалены, и любые различия должны вызывать обновление базы данных. Мой текущий подход состоит в том, чтобы обновить каждую включенную запись с обработанной датой и затем удалить все записи, не обработанные в тот день.
Однако для этого необходимо, чтобы каждая запись обновлялась каждый день, и мне было интересно, есть ли лучший способ?
В настоящее время я загружаю файл XML и нахожу в моем dbcontext каждую запись, которая в настоящее время существует для каждой записи в XML, следующим образом:
return (from venue in db.Venues
where venue.id = xmlVenueId
select venue).FirstOrDefault();
если оно существует, тогда я обновляю все поля с информацией о текущем xml-файле, а если оно не существует, я создаю новое. Если все поля одинаковы, база данных не обновляется.
Когда я обработал все записи, мне нужно удалить все записи, которые не были затронуты.
Как мне составить список всех найденных мест (следует ли извлечь первичные ключи, а затем добавить в список или взять все место) и как будет выглядеть запрос linq2Sql, чтобы найти все записи, отсутствующие в этом списке?