首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Entity Framework4.0错误无法添加对象或附加的EntityReference具有与EntityKey不匹配的EntityKey值

Entity Framework4.0错误无法添加对象或附加的EntityReference具有与EntityKey不匹配的EntityKey值
EN

Stack Overflow用户
提问于 2010-10-04 05:10:49
回答 1查看 1.9K关注 0票数 1

大家好,我开始使用Entity Framework4.0和ASP.NET 4.0,我正在尝试制作一个主细节网页,当我尝试将新项目添加到以前记录的项目时,我遇到了问题。下面是我为此制作的项目:

代码语言:javascript
复制
private void guardarOrdenMedicamento()
    {

        InventarioSIAIplusEntities SIAplusContext = (InventarioSIAIplusEntities)(Session["context"]);

        InvOrden orden;
        string resultMessage;

        if (DetalleMedicamentosOrden.Count == 0)

        {
            MessageBox1.ShowError("Debe especificar al menos un medicamento para la orden.");
            return;

        }

        if (txtIDorden.Text.Trim() == "")
        {
             orden = new InvOrden();

             orden.IDcentro = Convert.ToInt32(ddlCentros.SelectedValue);
             orden.estado = ddlEstadoOrden.SelectedValue;
             orden.fecha = Convert.ToDateTime(txtFechaCreacion.Text);

             orden.comentario = txtComentarioOrden.Text;
             orden.usuarioCrea = "Jeanc";                
             SIAplusContext.AddToInvOrdenes(orden);

             resultMessage = "La orden fue registrada satisfactoriamente";

        }
        else

        {
             int idorden = Convert.ToInt32(txtIDorden.Text.Trim());
             orden = SIAplusContext.InvOrdenes.Where(c => c.IDorden == idorden).First();      

             orden.estado = ddlEstadoOrden.SelectedValue;
             orden.fecha = Convert.ToDateTime(txtFechaCreacion.Text);
             orden.comentario = txtComentarioOrden.Text;

             orden.usuarioCrea = "Jeanc";
             resultMessage = "La orden fue actualizada satisfactoriamente";


             foreach (var item in DetalleMedicamentosOrden)
             {
                 if (item.IDorden == 0)

                 {
                // item.IDorden = idorden;
                //     item.InvOrdenReference.EntityKey =  orden.EntityKey;

                         //neww System.Data.EntityKey("InventarioSIAIplusEntities.InvOrdenes", "IDorden", orden.IDorden);
                //   SIAplusContext.AddToInvOrdenDets(item);

                  item.InvOrden = orden;
                   //
              // SIAplusContext.AddToInvOrdenDets(item);
                 //orden.InvOrdenDets.Add(item);

                 }
                 else
                 {
                     InvOrdenDet det = SIAplusContext.InvOrdenDets.Where(c => c.IDorden == item.IDorden && c.IDmedicamento == item.IDmedicamento).First();

                     det.cantidadApr = item.cantidadApr;
                     det.cantidadSol = item.cantidadSol;
                     det.comentario = item.comentario;
                 }
             } 

        }


        SIAplusContext.SaveChanges();

   }

错误是:无法添加或附加对象,因为其EntityReference的EntityKey属性值与此对象的EntityKey不匹配。谢谢你在这方面的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-10-04 23:41:30

我认为问题出在这里:

代码语言:javascript
复制
         item.InvOrden = orden;

您必须使用AddObject或更新现有对象的值。

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

https://stackoverflow.com/questions/3851610

复制
相关文章

相似问题

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