首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >EF4错误:无法定义两个对象之间的关系,因为它们附加到不同的ObjectContext对象

EF4错误:无法定义两个对象之间的关系,因为它们附加到不同的ObjectContext对象
EN

Stack Overflow用户
提问于 2010-10-29 04:18:43
回答 1查看 7.5K关注 0票数 4

您好,我有一个问题,我正在使用我的网站wscf在vs2010中使用的模型MVP(模型,视图,演示者)和我的模型层(数据访问层) iam使用EF

seguimiento表是be cliente和gventa表之间中间表,所以我在seguimiento表中插入了L2E (DAL层),如下所示

代码语言:javascript
复制
public void InsertarSeguimiento(Seguimiento Seg)
    {
        using (var cont = new CelumarketingEntities())
        {
            cont.AddToSeguimiento(Seg);
            cont.SaveChanges();
        }
    }

在我的演示图层中,我从文本框中为web表单捕获了seguimiento的字段,当我试图将对象cliente放入(seguimiento) objProxy.ClienteReference.Value时,我得到了这些错误

两个对象之间的关系无法定义,因为它们被附加到不同的ObjectContext对象。和我不明白为什么,因为gventa对象没有那个错误

代码语言:javascript
复制
 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);   
        }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-10-29 04:27:36

问题是您的idCliente已经附加到这里的上下文:

代码语言:javascript
复制
Project.CAD.Cliente  idCliente = _presenter.getCliente(nombrecliente);

因此,当您尝试将其分配给也在其他上下文中的另一个对象(您得到错误的那一行)时,EF会抛出错误,因为它不知道将哪个对象放入哪个上下文(它只能属于一个上下文)。

在返回_presenter.getCliente()方法之前,您需要做的是将idCliente从它的上下文中分离出来。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4046843

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档