Привет всем, я пытаюсь добавить новые элементы в основные записи, и я получаю сообщение об ошибке:
Оператор INSERT конфликтовал с ограничением FOREIGN KEY "invOrden_InvOrdenDet_FK1". Конфликт произошел в базе данных «InventarioSIAIplus», таблице «dbo.InvOrden», столбце «IDorden».
Заявление было прекращено.
Эта ошибка возникает, когда я добавляю новый элемент в детали.
Спасибо за любую помощь.
Код, который я использую для добавления и обновления данных:
InventarioSIAIplusEntities SIAplusContext = (InventarioSIAIplusEntities) (Session ["context"]);
InvOrden orden;
if (txtIDorden.Text.Trim() == "")
{
orden = new InvOrden();
orden.IDcentro = Convert.ToInt32(ddlCentros.SelectedValue);
orden.estado = ddlEstadoOrden.SelectedValue;
orden.fecha = DateTime.Now;
orden.comentario = txtComentarioOrden.Text;
orden.usuarioCrea = "Jeanc";
SIAplusContext.AttachTo("InvOrden",orden);
}
else
{
int idorden = Convert.ToInt32(txtIDorden.Text.Trim());
orden = SIAplusContext.InvOrdenes.Where(c => c.IDorden == idorden).First();
//orden.lo.getOrden());
orden.estado = ddlEstadoOrden.SelectedValue;
orden.fecha = DateTime.Now;
orden.comentario = txtComentarioOrden.Text;
orden.usuarioCrea = "Jeanc";
}
foreach (var item in DetalleMedicamentosOrden)
{
if (item.InvOrdenReference.Value == null)
{
item.InvOrden = orden;
}
}
SIAplusContext.SaveChanges();
КОД ДЛЯ ДОБАВЛЕНИЯ ЭЛЕМЕНТОВ ВРЕМЕННЫХ В ДЕТАЛИ
InventarioSIAIplusEntities SIAplusContext = (InventarioSIAIplusEntities) (Session ["context"]);
Список лекарств = DetalleMedicamentosOrden;
//Datos Detalle
InvOrdenDet ordenDetalle = new InvOrdenDet();
ordenDetalle.cantidadSol = uscAgregarMedicamentos1.Cantidad;
ordenDetalle.cantidadApr = uscAgregarMedicamentos1.CantidadAprobada;
ordenDetalle.comentario=uscAgregarMedicamentos1.Comentario;
ordenDetalle.comentario = uscAgregarMedicamentos1.Comentario;
ordenDetalle.IDmedicamento=uscAgregarMedicamentos1.IDmedicamento;
//Agrego el detalle a la lista de detalles que se va guardando en la memoria.
meds.Add(ordenDetalle);
//Paso la lista con el nuevo objecto actualizada.
DetalleMedicamentosOrden = meds;
//Consulto la lista con para hacer una proyeccion del query y trae el nombre del medicamento
var medInfo = from a in DetalleMedicamentosOrden
select new { a, a.cantidadSol, a.cantidadApr };
//Cargo la data en el gridview.
gvMedicamentosOrden.DataSource = medInfo;
gvMedicamentosOrden.DataBind();
//Mando a mostrar
mpePnMedicamentos.Show();