Oh. If you are only using NHibernate, you don't need TransactionScope. It's only useful when you are working with more than one transactional resource.
On Wed, Aug 18, 2010 at 6:48 AM, Jason Dentler <[email protected]>wrote: > NH requires an NH transaction for any call to the database for the NH > internals to work properly. > > TransactionScope is not a substitute for an NH transaction. > > > On Wed, Aug 18, 2010 at 6: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. >> > > -- 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.
