EF Core - детерминировать изменения от массового обновления данных
Наше ПО хочет инструмент для массового обновления данных в одной из наших таблиц. По сути, он хочет загрузить CSV, стереть существующую таблицу и поместить данные из CSV в таблицу. Все это легко реализовать в коде с помощью таких инструментов, как SqlBulkCopy, но я не уверен, как 1. сделать это с помощью EF Core и 2. Отслеживать изменения по мере необходимости, чтобы передавать дельты обратно.
Пример: у меня есть следующие записи:
Material | Quantity | Ship Parcel | Option Code | Price Key
------------------------------------------------------------
AB12312 | 1 | 0 | AC31 | AC31_AB12312
AB23124 | 2 | 1 | AC32 | AC32_AB23124
CD12312 | 3 | 0 | LZ11 | LZ11_CD12312
DR21312 | 6 | 1 | DR01 | DR01_DR21312
Затем ПО представляет файл со следующими записями:
Material | Quantity | Ship Parcel | Option Code | Price Key
------------------------------------------------------------
AB12312 | 1 | 1 | AC31 | AC31_AB12312
AB23124 | 3 | 1 | AC32 | AC32_AB23124
DR21312 | 6 | 1 | DR01 | DR01_DR21312
EA12121 | 1 | 1 | ZD22 | ZD22_EA12121
Таблица данных должна быть обновлена, чтобы она выглядела идентично таблице 2, и мы должны отправить что-то вроде:
Created:
EA12121 | 1 | 1 | ZD22 | ZD22_EA12121
Deleted:
CD12312 | 3 | 0 | LZ11 | LZ11_CD12312
Updated:
AB23124 | 3 | 1 | AC32 | AC32_AB23124
Поскольку мы говорим о 100 тыс. Записей за загрузку, требуется много времени, чтобы что-то сделать вручную, сравнивая каждую строку. Существуют ли какие-либо автоматизированные функции ядра ef, которые облегчили бы это?