Entity Framework 4.0 Ошибка Объект не может быть добавлен или присоединен EntityReference имеет значение EntityKey, которое не соответствует EntityKey - PullRequest
1 голос
/ 04 октября 2010

Привет всем, я начинаю работать с Entity Framework 4.0 и ASP.NET 4.0. Я пытаюсь создать веб-страницу с основными сведениями, и у меня возникают проблемы, когда я пытаюсь добавить новые элементы к ранее записанным элементам.я сделал для этого:

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 для этого объекта.Спасибо за любую помощь с этим.

1 Ответ

0 голосов
/ 04 октября 2010

Я думаю, что проблема здесь:

         item.InvOrden = orden;

Вы должны использовать AddObject или обновить значения существующего объекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...