如何从NHibernate ISession.SaveOrUpdate返回id

如何从NHibernate ISession.SaveOrUpdate返回id,nhibernate,Nhibernate,我正在使用ISession.SaveOrUpdate插入新对象并更新现有对象 如果使用ISession.Save(..),则返回插入记录的标识 对于SaveOrUpdate,我将执行以下操作: public int Save(Vehicle entity) { using (var txn = _session.BeginTransaction()) { _session.SaveOrUpdate(entity); txn.C

我正在使用ISession.SaveOrUpdate插入新对象并更新现有对象

如果使用ISession.Save(..),则返回插入记录的标识

对于SaveOrUpdate,我将执行以下操作:

   public int Save(Vehicle entity) {
        using (var txn = _session.BeginTransaction()) {
            _session.SaveOrUpdate(entity);
            txn.Commit();
        }
        return entity.Id;
    }
这是返回我身份的最佳方式吗

谢谢


这没什么错。但是既然标识是在对象上设置的,为什么不让方法返回void呢

   public void Save(Vehicle entity) {
    using (var txn = _session.BeginTransaction()) {
        _session.SaveOrUpdate(entity);
        txn.Commit();
    }
}

我认为这看起来是一个很好的方法,可能我自己也会这么做;例如,锋利的拱门就是这样做的。