This seems to be related to the following topics on the dev list, but
I can't follow those threads to a complete conclusion that would
answer my question

 
http://groups.google.com/group/castle-project-devel/browse_thread/thread/1707d8cdeecc3869/94a577f3d9eb4114?lnk=gst&q=flush#94a577f3d9eb4114
 
http://groups.google.com/group/castle-project-devel/browse_thread/thread/ba6c3963f7c4532b/fd3171b7f32d79f9?lnk=gst&q=flush#fd3171b7f32d79f9

2009/6/10 Alex Scordellis <[email protected]>:
> I have found that the session is not flushed before I perform a query
> using the criteria API, meaning that new objects for which I just
> called ActiveRecordMediator.Save are not returned by the query. I
> understand why this is (the INSERT is not performed until we flush the
> session), but
> a) it's surprising for most people. I understood that sessions got
> flushed automatically before each query.
> b) if I change the primary key of the type to PrimaryKeyType.Identity,
> this forces the Save to perform the INSERT to get the DB generated PK
> value, so the second query does return the new object
>
> This was happening when I used a TransactionScope(TransactionMode.New,
> IsolationLevel.ReadCommitted, OnDispose.Commit). With the latest trunk
> code I can fix it by using a SessionScope(FlushAction.Auto). I tried
> various other combinations of transactions and sessions and couldn't
> find one where I had a transaction and had an auto flushing session.
> What is the right scope construction to give me what I want?
>
> I'm also worried by point (b), since a change to the code that isn't
> visible from the point where I'm making the query is going to affect
> the query results. Because the change is not locally visible, it's
> going to be pretty tricky to track down bugs caused by this.
>
> You can see tests that exhibit this behaviour here
> http://github.com/alexscordellis/nh-ar-oddities/blob/bf7d248b08394a1a8e2140c91112239dc5b6f045/NHOddities/FindingRecentlySavedEntitiesWithAQuery.cs
> You'll see examples with both types of primary key and with various
> types of session scope.
>
> All this behaviour is against a trunk build of Active.Record. My
> current project is using an older build (r5380), which is even worse
> as SessionScope(FlushAction.Auto) doesn't fix it. See
> wont_find_stuff_just_saved_without_flush_with_flush_mode_auto in
> http://github.com/alexscordellis/nh-ar-oddities/blob/c2ee96d334a89429e41342eec47675d882cf65d2/NHOddities/QueryUsingUnsavedEntity.cs
>
> Thanks for your help,
>
> Alex
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Castle Project Users" 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-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to