Это не будет работать!Причина в том, что KeyValuePair является типом значения, что означает, что у него нет идентификатора.Однако db4o управляет объектами по их идентичности!Теперь C # радостно связывает любой тип значения с объектом, но это бесполезно для db4o, так как он не найдет в базе данных ни один объект с данным идентификатором.
Вы столкнулись с досадным угловым случаем между .NET иповедение db4o.В принципе, это не обходится, особенно потому, что db4o не имеет API для удаления объекта по его внутреннему id = (.
на будущее. Не храните KeyValuePairs (или любую структуру)для себя. Только как часть другого объекта. (и использовать 8.1, он имеет исправление, запрещающее никогда не удалять структуры). Это позволяет избежать этой проблемы.