NHibernate - KeyNotFoundException: Данный ключ не присутствовал в словаре

Update: Я исправил эту проблему

У меня есть следующий блок кода, который в конечном итоге должен обновить запись

if (session.Contains(entity))
{
    session.Evict(entity);
}

об ошибках на Session.Evict(entity) с помощью KeyNotFoundException, и следующее сообщение:

Данный ключ не присутствовал в словаре.

Я что-то не так понял? Я предполагаю, что если session.Contains(сущность) истинна, то ключ должен существовать и поэтому session.Evict() должен работать, как и ожидалось?

Трасса стека следующая:

System.Collections.Generic.KeyNotFoundException : The given key was not present in the dictionary.

at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
at NHibernate.Engine.StatefulPersistenceContext.RemoveEntity(EntityKey key)
at NHibernate.Event.Default.DefaultEvictEventListener.OnEvict(EvictEvent event)
at NHibernate.Impl.SessionImpl.FireEvict(EvictEvent evictEvent)
at NHibernate.Impl.SessionImpl.Evict(Object obj)
at Core.Repository.NHibernate.Repository.NoIdRepository`1.Update(T entity) in NoIdRepository.cs: line 26
at Core.Tests.Repository.NHibernate.Repository.TestInstanceVersionRepository.Test_Saving_Data() in TestInstanceVersionRepository.cs: line 63 
11
задан Akira Yamamoto 26 October 2016 в 20:26
поделиться