Как использовать Entity Framework BulkInsert в Asp.net Ноль

#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;
  

https://entityframework-extensions.net/context-factory