2012-03-15 76 views
7

我一直收到一个错误,当我从集合中删除一个对象时,它将被重新保存,因为它存在于其他集合中。在当前的会话中,只有我正在处理的集合存在。没有其他人。 所以我认为NHibernate告诉我,即使对象将被删除,它仍然存在于会话中。查看NHibernate会话对象

如何查看当前会话中的对象或NHibernate发现我试图删除的对象所属的对象?

+0

你应该发布完整的例外。以及特定于集合的映射,您尝试删除一个对象。还有您尝试删除/删除此对象的代码。 – 2012-03-16 02:35:09

+0

你忘记从某些集合中删除对象吗? session.Delete是不够的 – Firo 2012-03-16 11:28:28

回答

13

我发现:

var sessionContext = session.GetSessionImplementation().PersistenceContext; 
foreach (var entity in sessionContext.EntitiesByKey.Values) 
{ 

} 

上下文包含了所有会话的对象。

相关问题