Well, you could build the DTOs after the commit, since the Session
would still be open.

In the example code I provided, here's how the version is set:

            using (ISession s = sessionFactory.OpenSession())
            {
                using (ITransaction t = s.BeginTransaction())
                {
                    b = new ClassB();
                    var a = s.Get<ClassA>(aID);
                    b.AddClassA(a);
                    bver1 = b.EntityVersion; // version is 0
                    s.Save(b);
                    bver1 = b.EntityVersion; // version is 1
                    s.Flush();
                    bver1 = b.EntityVersion; // version is 1
                    t.Commit();
                }
                bver2 = b.EntityVersion; // version is 2 !!!
             }

Thanks for looking at this,
Luke

On Fri, Aug 14, 2009 at 1:07 AM, Stefan
Steinegger<[email protected]> wrote:
>
> I wouldn't build dtos after the commit, because you can't use lazy
> loading then.
>
> Flush should actually synchronize all the changes. So I'm also
> wondering ...
>
> On 13 Aug., 22:42, Luke Bakken <[email protected]> wrote:
>> Hello everyone,
>>
>> Just wanted to check that this is expected behavior in NHibernate. I
>> have services that, basically use this pattern to build DTOs:
>>
>> Start transaction
>>     Do stuff with entities
>>     Flush
>>     Build DTOs from entites
>> Commit transaction
>>
>> The problem is that certain operations update the version of the
>> entity when the Commit happens, not the Flush, so my DTOs won't have
>> the correct entity version. The attached solution demonstrates this.
>> If this is expected behavior, I can just build the DTOs after the
>> Commit, but I thought I'd just ask the group, as it seems all other
>> pending work is flushed when Flush() is called.
>>
>> Thanks,
>> Luke
>>
>>  TestNHibernate.zip
>> 11KAnzeigenHerunterladen
> >
>

--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to