我正在做一个POS软件,客户端要求POS在单独的窗口中执行Cuotes 但,所以我在主POS窗口中输入了一个Audit
对象希望在收银员切割之前存储实际销售历史的信息,因此我将 ref Audit
对象传递给frmCuotes
,因此两个窗口都在更改{{1} }
Audit
因此,当frmCuotes添加新的Cuotes时,此工作正常,POS中的class POS:Form
{
EFContext db = new EFContext();
//Get the last audit open if doesn't exist make a new one
Audit _audit = getLastAudit(ref db);
private void POS_Load(object sender, EventArg e)
{
frmCuotes cuoteswdw = new frmCuotes(ref _audit, ref db);
cuoteswdw.Show();
}
private void CashierCut()
{
_audit.State = Close;
db.SaveChanges();
_audit = getLastAudit(ref db);
}
//Other more POS operations
}
class frmCuotes:Form
{
Audit _audit;
EFContext db;
public frmCuotes(ref Audit aud, ref EFContext db)
{
this._audit = aud;
this.db = db;
}
private void cmdSaveCuote_Click(object sender, EventArgs e)
{
var cuote = new Cuote();
//fill Cuote object ...
_audit.Cuotes.Add(cuote)
db.SaveChanges();
}
}
class Audit
{
public int Id { get; set; }
public int Id_Company { get; set; }
public int Id_Terminal { get; set; }
public virtual ICollection<Cuotes> Cuotes { get; set; }
public virtual ICollection<Sales> Sales { get; set; }
}
得到反映的更改,但是当我从POS更改_audit
时,我自己得不到frmCuotes中反映的更改,例如_audit
被执行,新的CashierCut()
创建时使用了不同的Audit
,但在POS收银后,我提到frmCuotes仍然有旧的Id
。
为什么这些变化仅以一种方式反映出来?