ActiveRecord has always been more than an early "NH mapping attributes". One of the main features of AR was and is that it transparently manages sessions. I don't see no reason why we should now mandate TransactionScope for updates instead of managing the necessary transaction in the background whenever possible. I want AR to be a "simply works" solution based on NHibernate that still allows to dive in deep to use NHibernate to its fullest.
-Markus 2008/11/3 karron <[EMAIL PROTECTED]> > > SessionScope's autoflushing behavior bothered me before. I think it is > better that use trasactionscope explicitly to update data. When we > want to update data, we must use transactionscope or ATM. > > On Mon, Nov 3, 2008 at 3:04 AM, Craig Neuwirt <[EMAIL PROTECTED]> wrote: > > > > > > On Sun, Nov 2, 2008 at 12:54 PM, Markus Zywitza < > [EMAIL PROTECTED]> > > wrote: > >> > >> Craig > >> > >> I don't see why mandatory transactions in NH2 affect autoflush. With the > >> idiomatic NH double using-block, I have an autoflushing session as well. > >> Actually, SessionScope's autoflushing behaviour was broken after update > to > >> NH2 because the SessionScope session had no transaction. The performance > >> gain that results from non-autoflushing sessions is still available via > >> SessionScope(FlushAction.Never). > > > > I could be wrong, but if I am an AR user and I just want to retrieve > data, I > > would create a session scope and do my retrieval. If I plan to perform > > updates I would create a TransactionScope, do my updates and commit. I > was > > just suggesting we align the flush behavior with those scenarios to avoid > > having to remember to pass any parameters to the scopes. What scenarios > > would this break on? > > > >> > >> -Markus > >> > >> 2008/11/2 Craig Neuwirt <[EMAIL PROTECTED]> > >>> > >>> -1 > >>> > >>> Since NHibernate mandates a Transaction for all upates, I think the > >>> default for SessionScope should not be AutoFlush. This also seems to > >>> suggest TransactionScope should remain FlushMode.Commit. I think this > is > >>> the preferred approach since readonly operations will not be penalized > by > >>> NHibernate having to check dirty entities. > >>> > >>> On Sat, Nov 1, 2008 at 5:00 PM, Markus Zywitza < > [EMAIL PROTECTED]> > >>> wrote: > >>>> > >>>> Hello > >>>> > >>>> Earlier today I commited a patch to ActiveRecord that restored the > >>>> behaviour of SessionScope with respect to flushing. This change was > crucial > >>>> for a release because it prevents user from having to flush manually > when > >>>> using session scopes. > >>>> > >>>> I also want to change TransactionScope to use FlushMode.Auto instead > of > >>>> FlushMode.Commit. This would be a breaking change, but it also > standardizes > >>>> flushing behaviour for all types of scopes. This helps especially in > DDD > >>>> since the transaction can be controlled outside of the model, with no > manual > >>>> flushes necessary. Additionally, there is no difference between code > running > >>>> in SessionScope and code running in a TransactionScope. > >>>> > >>>> Other ideas I'd love to see in 1.0, but that could also come in 1.1: > >>>> > >>>> StatelessSessionScope > >>>> Event support (configuration/Windsor) > >>>> Adding hbm.xml files for hybrid AR/NH use. > >>>> > >>>> So what are your opinions on > >>>> > >>>> changing TransactionScope and > >>>> releasing now or first completing NH2.0 support? > >>>> > >>>> -Markus > >>>> > >>>> > >>> > >>> > >>> > >> > >> > >> > > > > > > > > > > > > > -- > Regards, > Karron > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Castle Project Development List" 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/castle-project-devel?hl=en -~----------~----~----~----~------~----~------~--~---
