如何从NHibernate ISession.SaveOrUpdate返回id

时间:2010-06-24 13:58:45

标签: nhibernate

我使用ISession.SaveOrUpdate插入新对象并更新已存在。

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

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

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

这是回归我身份的最好方法吗?

谢谢,

1 个答案:

答案 0 :(得分:7)

这没什么不对。但是由于在对象上设置了标识,为什么不使该方法返回void:

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