"session.Transaction.Commit()" is invoked by the NH internals, when transactionScope.Complete() is invoked, right?
On Wed, Aug 18, 2010 at 1:56 PM, Jacob Madsen <[email protected]> wrote: > Ahh.. great details! > > On Wed, Aug 18, 2010 at 1:53 PM, Fabio Maulo <[email protected]> wrote: > >> First of all thanks to avoid the annoying discussion about "I don't want >> use NH's transaction" and try it as I said you. >> >> In releasenote.txt under >> ** BREAKING CHANGES from NH1.2.1GA to NH2.0.0 >> you can find this >> * AutoFlush will not occur outside a transaction - Database transactions >> are never optional, all communication with the database must occur inside a >> transaction, whatever you read or write data. >> >> The NH's transaction is, sorry to be redundant, the NH's transaction. You >> have to use it because NH need it to take in account all operations under NH >> responsibility (it include cache, UoW and transactionscope). >> >> Because NH's transaction is not 1:1 with DB-transaction the >> TransactionScope is not a substitute of NH's transaction. >> >> On Wed, Aug 18, 2010 at 8:37 AM, Jacob Madsen <[email protected]> wrote: >> >>> Love the feature :-) >>> >>> Why do you also begin a nhibernate transaction? >>> >>> >>> >>> On Wed, Aug 18, 2010 at 1:08 PM, Fabio Maulo <[email protected]>wrote: >>> >>>> using(var transactionScope = new TransactionScope()) >>>> using(var session = sessionFactory.OpenSession()) >>>> using(var tx = session.BeginTransaction()) >>>> { >>>> var someEntity = session.Get<SomeEntityType>(someId); >>>> >>>> someEntity.Name = "bla"; >>>> .... >>>> transactionScope.Complete(); >>>> >>>> NH will use autodirty check >>>> >>>> On Wed, Aug 18, 2010 at 7:53 AM, Jacob Madsen <[email protected]> wrote: >>>> >>>>> So I do not need to make an explicit Update(someEntity) call? >>>>> >>>>> using(var transactionScope = new TransactionScope()) >>>>> using(var session = sessionFactory.OpenSession()) >>>>> { >>>>> var someEntity = session.Get<SomeEntityType>(someId); >>>>> >>>>> someEntity.Name = "bla"; >>>>> >>>>> session.Update(someEntity); // I want to avoid these explicit >>>>> Update-calls by tracking the (dirty) entities in a session and do a single >>>>> call to a "void SaveChanges()" method. The "SaveChanges" method should do >>>>> the updating on the entities in a session. I still want to explicitly >>>>> insert >>>>> new entities with session.Save(newEntity), which I abstract and in a >>>>> method >>>>> called "Store". >>>>> >>>>> transactionScope.Complete(); >>>>> } >>>>> >>>>> On Tue, Aug 17, 2010 at 10:30 AM, Dwarrel <[email protected]>wrote: >>>>> >>>>>> Yes, you would not want to use it for that reason, flush will do that >>>>>> automatically. Unfortunately I do sometimes crave for a way to see >>>>>> which objects are in the session. Sometimes I would want to evict all >>>>>> objects of a certain type from the session cache. This if you have a >>>>>> longer running session and someone else has updated the DB values. >>>>>> There is no known way of evicting say all purchase info and then re- >>>>>> run a query to load the relevant ones. If you don't evict them then >>>>>> you get a strange mix of stale and current information as your query >>>>>> result (even when having the version number available!) >>>>>> >>>>>> On Aug 16, 3:33 pm, Jason Dentler <[email protected]> wrote: >>>>>> > Automatic dirty checking will take care of this when the session is >>>>>> flushed >>>>>> > (which normally happens when you commit a transaction) >>>>>> > >>>>>> > >>>>>> > >>>>>> > On Mon, Aug 16, 2010 at 4:27 AM, Jacob Madsen <[email protected]> >>>>>> wrote: >>>>>> > > Hi all, >>>>>> > >>>>>> > > Is there a method to retrieve references to all entities known by >>>>>> a >>>>>> > > session >>>>>> > >>>>>> > > using (var session = sessionFactory.OpenSession()) >>>>>> > > { >>>>>> > > var entity = session.Get<SomeType>(someId); // "entity" is now >>>>>> > > known by the session >>>>>> > > .... >>>>>> > > var allKnownEntities = /* here I want to retrieve all entities >>>>>> > > known/attached to a session */ >>>>>> > > .... >>>>>> > > } >>>>>> > >>>>>> > > I want to implement a "void SaveChanges()" method that will Update >>>>>> all >>>>>> > > modified entities known by a session. >>>>>> > >>>>>> > > Cheers! >>>>>> > >>>>>> > > -- >>>>>> > > 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]<nhusers%[email protected]> >>>>>> <nhusers%[email protected]<nhusers%[email protected]> >>>>>> > >>>>>> > > . >>>>>> > > For more options, visit this group at >>>>>> > >http://groups.google.com/group/nhusers?hl=en.- Hide quoted text - >>>>>> > >>>>>> > - Show quoted text - >>>>>> >>>>>> -- >>>>>> 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]<nhusers%[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]<nhusers%[email protected]> >>>>> . >>>>> For more options, visit this group at >>>>> http://groups.google.com/group/nhusers?hl=en. >>>>> >>>> >>>> >>>> >>>> -- >>>> Fabio Maulo >>>> >>>> -- >>>> 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]<nhusers%[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]<nhusers%[email protected]> >>> . >>> For more options, visit this group at >>> http://groups.google.com/group/nhusers?hl=en. >>> >> >> >> >> -- >> Fabio Maulo >> >> -- >> 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]<nhusers%[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.
