Я делаю рефакторинг раздела старого кода, чтобы сделать его более тестируемым. Часть этого состоит в том, чтобы реализовать тестовый двойник структуры сущности DbSet
. Я следовал за шагами здесь https://docs.microsoft.com/en-us/ef/ef6/fundamentals/testing/writing-test-doubles, и это прекрасно работает.
Существующий класс использует AddRange
, поэтому я добавил переопределение в класс TestDbSet.
public override IEnumerable<TEntity> AddRange(IEnumerable<TEntity> entities)
{
foreach (var entity in entities)
{
yield return Add(entity);
}
}
И я попытался назвать это
myDbContext.Persons.AddRange(newPersons);
Однако AddRange
никогда не вызывают. Если я прокомментирую AddRange
, я получу NotImplementedException
из класса DbSet.
Я начал новый проект с нуля, и AddRange
работает как положено. Поэтому у меня должно быть что-то, что мешает этому в моем проекте, однако я не могу определить причину.
Что может помешать вызову override в моем производном классе DbSet
?
В настоящее время моя работа заключается в том, чтобы использовать вместо этого Add.