您好,我有一个问题,我正在使用我的网站wscf在vs2010中使用的模型MVP(模型,视图,演示者)和我的模型层(数据访问层) iam使用EF
seguimiento表是be cliente和gventa表之间中间表,所以我在seguimiento表中插入了L2E (DAL层),如下所示
public void InsertarSeguimiento(Seguimiento Seg)
{
using (var cont = new CelumarketingEntities())
{
cont.AddToSeguimiento(Seg);
cont.SaveChanges();
}
}
在我的演示图层中,我从文本框中为web表单捕获了seguimiento的字段,当我试图将对象cliente放入(seguimiento) objProxy.ClienteReference.Value时,我得到了这些错误
两个对象之间的关系无法定义,因为它们被附加到不同的ObjectContext对象。和我不明白为什么,因为gventa对象没有那个错误
protected void BtnInsertar_Click(object sender, EventArgs e)
{
string nombreGVentas = TbxVendedor.Text;
char[] delimit = new char[] { ' ' };
string[] arreglo = nombreGVentas.Split(delimit);
GVenta IdGVentas = _presenter.getventas(arreglo[0], arreglo[1]);
string nombrecliente = TbxCliente.Text;
Project.CAD.Cliente idCliente = _presenter.getCliente(nombrecliente);
string hora = DdlHora.SelectedValue;
string minutos = DdlMinutos.SelectedValue;
string HorMin = hora + ":" + minutos;
Project.CAD.Seguimiento objProxy = new Project.CAD.Seguimiento();
objProxy.GVentaReference.Value = IdGVentas;
objProxy.ClienteReference.Value = idCliente; *// here i get the errors*
objProxy.Descripccion = TbxDescripccion.Text;
objProxy.Fecha = Calendar1.SelectedDate;
objProxy.Hora = HorMin;
_presenter.insertarseg(objProxy);
}
发布于 2010-10-29 04:27:36
问题是您的idCliente已经附加到这里的上下文:
Project.CAD.Cliente idCliente = _presenter.getCliente(nombrecliente);
因此,当您尝试将其分配给也在其他上下文中的另一个对象(您得到错误的那一行)时,EF会抛出错误,因为它不知道将哪个对象放入哪个上下文(它只能属于一个上下文)。
在返回_presenter.getCliente()
方法之前,您需要做的是将idCliente从它的上下文中分离出来。
https://stackoverflow.com/questions/4046843
复制相似问题