Ваша проблема начинается со следующего кода:
List<Entity> list = new DomainModelDbContext().books.ToList();
foreach (var l in list)
{
list.Add(l); // Runtime error
}
Вообще говоря, вы не можете добавлять или удалять элементы в коллекции или словаре, повторяя их, используя цикл foreach. Эта проблема не будет возникать, если вы используете циклы другого типа, такие как for (...), while и т. Д.
Я только что запустил ваш код, он не имеет ничего общего с добавлением или удалением ключа. Вы получаете ошибку, когда заполняете свой объект списка
List<Entity> list = db.books.ToList();
foreach(var l in list)
{
list.Add(l);
}
у вас уже есть список книг, так какова цель цикла foreach?
Вы получаете ошибку, потому что добавляете новые объекты при перечислении по списку, это недопустимо, потому что это будет инфинитив