Devendra lodha Ответов: 1

Невозможно получить данные с помощью метода bulkread efcore.bulkextensions


Я использую EFCore.BulkExtensions[3.1.6] в .Net Core 3.1 Web API для выполнения массовых операций. Массовая вставка и обновление работают нормально, но я не могу использовать метод BulkRead для получения массовых данных.

Я ссылаюсь на эту ссылку https://github.com/borisdj/EFCore.BulkExtensions#read-пример и попробовал его, но я не получаю данных. Может быть, я не понял этого примера.

Я хочу получить идентификатор и имя всех транспортных средств Submodel, но он не возвращает никаких записей. Не мог бы кто-нибудь объяснить, как мы можем использовать метод BulkRead EFCore.Переборки. Я трачу несколько часов, чтобы сделать это, ищу много ссылок, но не получаю его решения. Может ли кто-нибудь помочь?

Вот код, который я пробовал:

Что я уже пробовал:

IList<VehicleSubModel> submodels = new List<VehicleSubModel>(); // //VehicleSubModel is the domain Entity

       var result = submodels.Select(s => new VehicleSubModel() { Id = s.Id, Name = s.Name }).ToList();
       var bulkConfig = new BulkConfig { UpdateByProperties = new List<string> { nameof(VehicleSubModel.Id), nameof(VehicleSubModel.Name) } };

       await Task.Run(() => Context.BulkRead(result, bulkConfig));

1 Ответов

Рейтинг:
2

Richard Deeming

Ваш submodels список пуст, так что ваш result список также будет пуст, и не будет никаких записей для загрузки.

Вам нужен список идентификаторов записей, которые вы хотите загрузить, а затем передать их в систему. BulkRead метод.

Вы также не должны использовать await Task.Run(...), особенно когда имеется асинхронный метод.

var recordsToLoad = new List<int> { 1, 2, 42 };
var result = recordsToLoad.Select(id => new VehicleSubModel { Id = id }).ToList();
var bulkConfig = new BulkConfig { UpdateByProperties = new List<string> { nameof(VehicleSubModel.Id) } };
await Context.BulkReadAsync(result, bulkConfig);