Hi, Andrea
Thanks you very much for your reply!
But my work is different from yours. In my project, object subj to object
reg is one-to-many relationship. So subj is a single object, not a IList.
My configs are just like below:
////In Reg.config:
<resultMaps>
<resultMap id="SelectAllResult" class="Reg">
<result property="SeqId" column="SeqId"/>
<result property="UserID" column="UserID"/>
<result property="HoldScoreKind" column="HoldScoreKind"/>
<result property="IsTrain" column="IsTrain"/>
<result property="SubjID" column="SubjID"/>
<result property="FeeAffirm" column="FeeAffirm"/>
<result property="AffirmTime" column="AffirmTime"/>
</resultMap>
<resultMap id="SelectAllResultExtent" class="Reg"
extends="SelectAllResult">
<result property="User" column="UserID" lazyLoad="true" select="
User.Find" />
<result property="Subj" column="SubjID" lazyLoad="true" select="
Subj.Find" />
</resultMap>
</resultMaps>
/////In Subj.config:
<select id="FindAll" resultMap="SelectAllResultExtent">
SELECT
*
FROM [Subj]
</select>
<select id="Find" parameterClass="int?" resultMap="SelectAllResultExtent"
extends="FindAll">
WHERE
[Subj].[ID] = #value#
</select>
Andy
On 10/24/07, Andrea Tassinari <[EMAIL PROTECTED]> wrote:
>
> Hi,
>
> I am currently using DataMapper 1.6.1 and lazy load works great.
>
> One example:
>
> 1) result Map for object Lotto containing a 1-to-many relationship mapped
> in my domain with a List<Cantina>
>
> <result property="Cantine" column="Id" select="SelectCantinaByLottoId"
> lazyLoad="true"/>
>
> Stupid question: did you specified a resultMap *not* a resultClass in the
> select statement?
>
> <!--Wrong version lazy load not involved -->
> <select id="SelectLottoById" parameterClass="string" resultClass="Lotto">
> <include refid="SelectLotto_BaseSQL" />
> <dynamic prepend="WHERE">
> <isParameterPresent>Id = #value#</isParameterPresent>
> </dynamic>
> </select>
>
> <!--Correct version lazy load fired -->
> <select id="SelectLottoById" parameterClass="string"
> resultMap="LottoResMap">
> <include refid="SelectLotto_BaseSQL" />
> <dynamic prepend="WHERE">
> <isParameterPresent>Id = #value#</isParameterPresent>
> </dynamic>
> </select>
>
>
> Hope this helps
>
> Andrea
>
> At 10.38 24/10/2007, Sandy Young wrote:
>
> >When I use DataMapper-1.6.1 instead of DataMapper-1.5.1, I find the
> lazyload function doesn't work.
> > If I replace DataMapper-1.6.1 with older DataMapper-1.5.1, it works.
> > I find this bug is reported as a bug in <http://ibatis.net>ibatis.net's
> Issue Tracker.
> >Is there anybody can fix it?
> >Thank you!
> >
> >My code:
> >
> >IRegDao dao = new RegDao();
> > Reg reg = dao.Find(1);
> > Console.WriteLine("Reg:");
> > Console.WriteLine("SeqId:{0}", reg.SeqId);
> > Console.WriteLine("SubjID:{0}\tName:{1}", reg.SubjID, <
> http://reg.Subj.Name>reg.Subj.Name);
> >
> >///class Reg
> >public partial class Reg
> > {
> > #region Private Member
> > private int? _SubjID;
> > #endregion
> >
> > #region Private Extend Member
> > private Subj _Subj;
> > #endregion
> >
> > #region Constructor
> > public Reg()
> > {
> > }
> > #endregion
> >
> > #region Public Properties
> > public int? SubjID
> > {
> > get {return _SubjID;}
> > set {_SubjID = value;}
> > }
> > #endregion
> >
> > #region Public Extend Properties
> > public virtual Subj Subj
> > {
> > get { return _Subj; }
> > set { _Subj = value; }
> > }
> > #endregion
> > }
> >
> >
> >No virus found in this incoming message.
> >Checked by AVG Free Edition.
> >Version: 7.5.503 / Virus Database: 269.15.8/1089 - Release Date:
> 23/10/2007 19.39
>
>