Массовое обновление в рамках сущности в веб-API - PullRequest
0 голосов
/ 15 ноября 2018

Я работаю над проектом web api, где клиентское приложение отправит массовые записи в api для обновления в db.Я использую C # и Entity Framework.

Клиентское приложение отправит список записей

[

'DAD88F3D-518E-47CC-A5D9-33E15D8373A7',

'B3960124-34CF-445C-A1A7-3F1ABB383C01',

'6883E1BE-218E-499E-AC6D-13E9E7D099A9',

'A2B6D337-A61579012D0, 0240D0

'A2B6D337-A615-4269-9C0F-D24D2479012B',

'4950C8EC-A6CC-42B7-AD2A-E029E7FCF11A',

'C1C477BD-B685F 456-A381DC596524 ',

' C1C477BD-B1DF-45D6-85C4-A381DC596524 ',

' 4938EB64-C795-46B9-B42D-D48F32AD8DF4 '

] * 101026 * Этот список будет содержать около 100 записей одновременно.

Таким образом, API должен обновить несколько таблиц БД со всеми совпадающими идентификаторами в списке и вернуть статус клиенту для каждого идентификатора, что операция обновления является успешной ичто не удалось.Клиентское приложение должно выполнить какую-либо операцию, основываясь на успешном или неудачном статусе.

Обновление tableName set Deleted = 'Y', где id в (приведенный выше список)

Обновление anotherTableName set enrollment = 'Incomplete', гдеидентификатор в (списке выше)

Итак, как это можно сделать в рамках сущностей для обновления большего количества записей.

1 Ответ

0 голосов
/ 16 ноября 2018

Отказ от ответственности : я владелец проекта Entity Framework Plus

Если вы хотите обновить несколько строк до одного значения, эта бесплатная библиотекавыполнит работу.

context.YourDbSet.Where(x => listIds.Contains(x => x.Id))
                 .Update(x => x.Deleted = 'Y');

Отказ от ответственности : я являюсь владельцем проекта Расширения Entity Framework

(Эта библиотека небесплатно)

Если вам нужно выполнить BulkUpdate в списке, вы можете использовать эту библиотеку

Пример

// Easiest way
context.BulkSaveChanges(); // as your normally do with SaveChanges

// Fastest way
context.BulkUpdate(list);
...