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
>

Reply via email to