We can bypass to set 'dirty' if the AOP generation mechanism can know an object is in 'loading' state.
We can use a custom IBatisNet.Common.Utilities.IObjectFactory to mark an object 'loading'. And we can use a wrapped ISqlMapper to clean the 'loading' flag as: public object QueryForObject(string statementName, object parameterObject) { Object result = originalSqlMapper.QueryForObject(...); result.IsLoading = false; return result; } Yaojian On Fri, May 29, 2009 at 1:55 AM, Sal Bass <salbass...@hotmail.com> wrote: > > I am having a dilema with implementing dirty tracking on my entities. I am > using AOP to mark an entity as "dirty" when a property is set. The problem > occurs when I load the entities using Ibatis because it sets the properties > during mapping which makes the entity dirty (no, I can't use constructor > mapping here). So, I use a RowDelegate to mark the entity clean before > returning it. Works great....except for when I am loading a root object with > several complex properties (ILists of other entities). The RowDelegate is > obviously not fired for each complex property, so they are returned as > dirty. > > Any idea of how I can get at all of the complex properties to mark them > clean before returning the entity? > > > > _________________________________________________________________ > HotmailĀ® goes with you. > > http://windowslive.com/Tutorial/Hotmail/Mobile?ocid=TXT_TAGLM_WL_HM_Tutorial_Mobile1_052009 >