Ben Foster
Ben Foster

Reputation: 34810

How to return id from NHibernate ISession.SaveOrUpdate

I am using ISession.SaveOrUpdate to insert new objects and updaet existing.

If I use ISession.Save(..) this returns the identity of the inserted record.

For SaveOrUpdate I am doing the following:

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

Is this the best way to return my identity?

Thanks,

Ben

Upvotes: 5

Views: 6867

Answers (1)

Jamie Ide
Jamie Ide

Reputation: 49261

There's nothing wrong with that. But since the identity is set on the object, why not make the method return void:

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

Upvotes: 8

Related Questions