#c# #asp.net #asp.net-core #asp.net-boilerplate
#c# #asp.net #asp.net-core #asp.net-шаблон
Вопрос:
Я использую ASP.NET Ноль для вставки больших объемов данных из Excel в базу данных, и это происходит медленно. Итак, я подумал об использовании расширений Entity Framework для BulkInsert, но на самом деле не знаю, как это использовать .. Я получаю сообщение об ошибке
Аргументы типа для метода DbContextBulkExtensions .BulkInsert не может быть выведен из использования
Это мой код.. Любая помощь, пожалуйста?
private readonly IRepository<InventoryBalance> _repository;
public void Create(InventoryBalance input)
{
_repository.GetDbContext().BulkInsert(input);
}
Комментарии:
1. Я использую github.com/borisdj/EFCore . Объемные расширения и не entityframework-extensions.net .. Однако я попытался изменить его на те же ошибки. создать общедоступную пустоту (IEnumerable<InventoryBalance> входные данные) { _repository . GetDbContext().BulkInsert(входные данные); }
Ответ №1:
Метод BulkInsert принимает IEnumerable<T>
параметр. Попробуйте изменить свой код на что-то вроде этого и передать ему набор входных данных вместо одного.
public void Create(IEnumerable<InventoryBalance> inputs)
{
_repository.GetDbContext().BulkInsert(inputs);
}
Также обратите внимание, что вам нужно будет где-то настроить фабрику контекста. Попробуйте добавить эту строку в конструктор вашего репозитория.
EntityFrameworkManager.ContextFactory = context => context;