That makes sense. I'll give it a try. Thanks. -- Brian
On Tue, May 15, 2012 at 3:29 PM, Oskar Berggren <[email protected]>wrote: > 2012/5/15 Brian Berns <[email protected]>: > > I have code that looks like this: > > > > using (var session = this.sessionCreator.OpenSession()) > > using (var transaction = session.BeginTransaction()) > > { > > session.SaveOrUpdate(anObject); > > session.CreateSQLQuery(sql) > > .ExecuteUpdate(); > > transaction.Commit(); > > } > > > > Surprisingly, the SQL query executes before anObject is saved. > Apparently, > > It is not surprising. SaveOrUpdate() does NOT imply "execute sql now". > > > > the ExecuteUpdatecommand does not participate in the current > transaction. Is > > there any way to get the update to enlist in the transaction? > > I don't see how you can reach that conclusion based on the information > given. If you remove the call to Commit(), are the changes still > present in the database? I think it's just a matter of calling Flush() > on the session before ExecuteUpdate() if you need to guarantee that > any dirty state has been flushed to the DB before you SQL query. I > think NH can't do that automatically in this case. > > /Oskar > > -- > You received this message because you are subscribed to the Google Groups > "nhusers" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/nhusers?hl=en. > > -- You received this message because you are subscribed to the Google Groups "nhusers" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/nhusers?hl=en.
