tags:

views:

30

answers:

1

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

+4  A: 

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();
    }
}
Jamie Ide
great, thanks for clarifying
Ben
IF the method is part of a repository or dao you might find it convenient (but not necessary) to return the entity itself; Sharp Arch, for one, does this.
Berryl