如果要表示一对多的对象结构,我们可以采用如下的方式(表明了一个入库单的结构,这个入库单包含了入库单头和相关明细):
public class Form : PersistenceCapable
{
private EntityData form;
private FormDetail formDetail;
#region 构造函数
public Form() : this(true)
{}
public Form(bool AutoInit)
{
form=EntityPrototypeManager.GetEmptyEntity("Form");
if(AutoInit)
form.NewRecord("Form");
}
public Form(EntityData entity)
{
form=entity;
}
#endregion
#region 属性
public string FormID
{
get{return form["FormID","Form"].ToString();}
set{form["FormID","Form"]=value;}
}
public DateTime FormTime
{
get{return form.GetDateTime("FormTime","Form");}
set{form["FormTime","Form"]=value;}
}
public FormDetail FormDetail
{
get
{
if(formDetail==null)
{
formDetail=new FormDetail(form);
}
return formDetail;
}
}
#endregion
#region PersistenceCapable 成员
public int ObjectCount
{
get
{
return form.EntityCount;
}
}
public EntityData EntityData
{
get
{
return form;
}
set
{
form=value;
}
}
public bool Next()
{
return form.Next("Form");
}
public void First()
{
form.First("Form");
}
public void AddNew()
{
form.NewRecord("Form");
}
#endregion
}
public class FormDetail : PersistenceCapable
{
private EntityData form;
#region 构造函数
public FormDetail() : this(true)
{}
public FormDetail(bool AutoInit)
{
form=EntityPrototypeManager.GetEmptyEntity("Form");
if(AutoInit)
form.NewRecord("FormDetail");
}
public FormDetail(EntityData entity)
{
form=entity;
}
#endregion
#region 属性
public string FormDetailID
{
get{return form["FormDetailID","FormDetail"].ToString();}
set{form["FormDetailID","FormDetail"]=value;}
}
public string FormID
{
get{return form["FormID","FormDetail"].ToString();}
set{form["FormID","FormDetail"]=value;}
}
public string ProductID
{
get{return form["ProductID","FormDetail"].ToString();}
set{form["ProductID","FormDetail"]=value;}
}
public decimal InCount
{
get{return form.GetDecimal("InCount","FormDetail");}
set{form["InCount","FormDetail"]=value;}
}
#endregion
#region PersistenceCapable 成员
public int ObjectCount
{
get
{
return form.Tables["FormDetail"].Rows.Count;
}
}
public EntityData EntityData
{
get
{
return form;
}
set
{
form=value;
}
}
public bool Next()
{
return form.Next("FormDetail");
}
public void First()
{
form.First("FormDetail");
}
public void AddNew()
{
form.NewRecord("FormDetail");
}
#endregion
}