it depend on what you are doing in ent.DeepCloneOfAggregate() and in "..." I don't understand various things... 1) why use session.Lock when the Merge reattach the entity to the new session ? 2) why use a clone when Merge return an updated version of your entity without touch the original one ?
doc of Merge /// Copy the state of the given object onto the persistent object with the same /// identifier. If there is no persistent instance currently associated with /// the session, it will be loaded. Return the persistent instance. If the /// given instance is unsaved, save a copy of and return it as a newly persistent /// instance. The given instance does not become associated with the session. /// This operation cascades to associated instances if the association is mapped /// with cascade="merge". 2008/10/9 Roger Kratz <[EMAIL PROTECTED]> > Hi > > > > Is this suppose to work? > > > > Entity ent=[…]; > > Entity entClone =ent.DeepCloneOfAggregate(); > > … > > session.Lock(ent, LockMode.None); > > session.Merge(entClone); ßhas not been changed > > Assert.IsFalse(session.IsDirty()); > > > > > > It works if "ent" does not have any collection. If it has, the session > becomes dirty. > > > > If "ent" is not versioned/has optimistic lock, nothing will be persisted. > However, because entity is considered dirty, if flushing this session, "ent" > will be persisted to the db with a new version number even though no data > has been changed. > > > > Is this by design or is this a bug that I should JIRA this? > > > > /Roger > > > > > > > > -- 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] For more options, visit this group at http://groups.google.com/group/nhusers?hl=en -~----------~----~----~----~------~----~------~--~---
