NHibernate:如何检查实体是否持久

NHibernate:如何检查实体是否持久,nhibernate,Nhibernate,我发现自己经常编写如下代码: if (myEntity.Id == default(Guid)) Session.Save(myEntity); 检查实体是否已经持久化,因此不需要保存的最佳方法是什么 我写这样的代码是不是做错了?我就是这么做的,只是我通常在执行此检查的基类或扩展中使用IsNew或IsTransient方法。然后代码变成: public Boolean IsTransient(){ return this.Id == default(Guid); } 不要忘记Sess

我发现自己经常编写如下代码:

if (myEntity.Id == default(Guid))
   Session.Save(myEntity);
检查实体是否已经持久化,因此不需要保存的最佳方法是什么


我写这样的代码是不是做错了?

我就是这么做的,只是我通常在执行此检查的基类或扩展中使用IsNew或IsTransient方法。然后代码变成:

public Boolean IsTransient(){
 return this.Id == default(Guid);
}

不要忘记Session.SaveOrUpdateentity方法将导致持久化实体的更新,而不是插入,因此可以使用此方法并忽略检查。不过我更喜欢做这个检查。

我就是这么做的,只是我通常在执行这个检查的基类或扩展中使用IsNew或IsTransient方法。然后代码变成:

public Boolean IsTransient(){
 return this.Id == default(Guid);
}
不要忘记Session.SaveOrUpdateentity方法将导致持久化实体的更新,而不是插入,因此可以使用此方法并忽略检查。不过我更愿意做检查