Добавить против AddRange
Это очень распространенная ошибка при использовании метода Add для добавления нескольких объектов. Фактически, это метод DetectChanges, который INSANELY slow.
- Метод Add DetectChanges после каждой добавленной записи.
- Метод AddRange DetectChanges после добавления всех записей.
См .: Entity Framework - Performance Add
Чтобы решить вашу проблему,
Идея, вероятно, заключается в добавлении нового метода AddRange
в ваш репозиторий. Однако вы столкнетесь с другой проблемой, поскольку IDbSet
не имеет метода AddRange
, а DbSet
. Так что, возможно, вам нужно будет сделать бросок.
РЕДАКТИРОВАТЬ: ответить на комментарий
как разыграть мне нужно будет сделать?
Это зависит от того, что в действительности является вашим IDbSet<TEntity>
. Я имею в виду, что это не экземпляр интерфейса, он должен наследоваться от класса.
Это, вероятно, экземпляр DbSet<TEntity>
, так что если это так, вам нужно только разыграть его
((DbSet<TEntity>)ObjectSet).AddRange(items);