我想問你一個問題,我有。我使用ASP.NET作爲接口,使用db4o作爲數據庫。我有這樣的階級結構:在db4o中增加對象編號
- PRJ(類)(EQP是PRJ的屬性)
- ... EQP(類)(EQP的屬性是這兩個:)
- 。 .EqpSpec(類)
- ..Job(屬性)
- ... EQP(類)(EQP的屬性是這兩個:)
我的代碼在下面,我不明白爲什麼在我存儲它後,EqpSpec中的對象增加了。
如果在關閉程序並重新打開它之後我有一個「a」對象,我會從下拉列表中獲得兩個對象。 (我從之前存儲對象的下拉列表(ddlEqp)中選擇EqpSpecName,然後將作業寫入TxtJob,然後我首先將它存儲到AddEqp中的數組中,然後從會話中將它取出並存儲到數據庫在Update_Click中。)
/* I use this method to add */
protected void AddEqp_Click(object sender, EventArgs e)
{
// ...
EqpSpec objEqpS = new EqpSpec();
objEqpS.EqpName = ddlEqp.SelectedValue;
objEq.EqpSpec = (EqpSpec)db.Next(objEqpS);
objEq.Job = Convert.ToInt32(TxtJob.Text);
listEqp.Add(objEq);
Session["listEqp"] = listEqp;
}
/* I use this method for both update and store */
protected void Update_Click(object sender, EventArgs e)
{
DatabaseConnection db = new DatabaseConnection();
ArrayList listEqp = (ArrayList)Session["listEqp"];
Prj objPrj= new Prj();
objPrj.PrjName = ddlPrj.SelectedValue;
objPrj = (Prj)db.Next(objPrj);
Eqp[] arrayEqp = new Eqp[listEqp.Count];
for (int i = 0; i < listEqp.Count; i++)
arrayEqp = (Eqp)listEqp;
objPrj.Eqp = arrayEqp;
db.Update(objPrj);
}
重複的原因是什麼,我該如何避免它?