有没有办法知道一个实体是否由NHibernate管理?

时间:2011-11-25 14:01:21

标签: c# nhibernate fluent-nhibernate

我有很多实体,我想知道哪一个已经使用NHibernate进行了Save()(还没有刷新)。我该怎么办?

2 个答案:

答案 0 :(得分:4)

根据Hibernate's Documentation,会话有一个名为Contains(obj)的方法。

boolean contains(Object object)
    Check if this instance is associated with this Session.

Parameters:
    object - an instance of a persistent class

Returns:
    true if the given instance is associated with this Session

好吧,我认为这应该适用于您的情况,因为在您调用Save(或Get)之前,新创建的对象未与ISession取得联系。试一试,告诉我们会发生什么。

另一种选择是在ISession之上创建一个抽象,并实现自己的代码来检查实体是否已被保存。

答案 1 :(得分:0)

如果您想知道NHibernate是否保留了某些内容,您可以查看“ID”字段并查看它是否已从默认值更改