2010-10-03 56 views
1

嗨,大家好,我開始使用Entity Framework 4.0和ASP.NET 4.0我試圖製作一個主詳細信息網頁和我遇到的問題,當我嘗試添加新項目低於先前記錄的項目是本作的我:實體框架4.0錯誤無法添加或附加對象EntityReference的EntityKey值與EntityKey不匹配

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屬性值。 謝謝對此有任何幫助。

+0

你在哪一行得到異常拋出? – Yakimych 2010-10-04 08:23:14

回答

0

我覺得現在的問題是在這裏:

  item.InvOrden = orden; 

你要麼必須使用ADDOBJECT或更新值的現有對象。

+0

我已經嘗試了兩個,我也得到一個錯誤 – 2010-10-04 18:41:04

相關問題