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