Estoy utilizando Entity Framework por primera vez y estoy intentando crear un objeto con una colección (y quiero que se creen todos los objetos de la colección) en la base de datos también), pero estoy teniendo algunas violaciones de claves extranjeras.Insertar uno a muchos de Entity Framework - Violación de clave externa
Mis tablas de ejemplo:
table APPOINTMENTS: ID, VAR1, DATE_APPOINTMENT
table GUESTS: ID, APPOINTMENT_ID, USER_ID, VAR2, VAR3
Mi código de prueba:
DomainService aux = new DomainService();
APPOINTMENTS appointment = new APPOINTMENTS();
appointment.VAR1 = "BLA";
appointment.DATE_APPOINTMENT = new DateTime();
//The user with id = 1 is already created in the database
appointment.GUESTS.Add(new GUESTS { USER_ID = 1, VAR2 = 1, VAR3 = "F" });
aux.InsertAppointment(appointment);
En DomainService tengo:
public void InsertAppointment(APPOINTMENTS appointment)
{
using (var context = this.ObjectContext)
{
context.AddToAPPOINTMENTS(appointment);
context.SaveChanges();
}
}
Pero estoy recibiendo este error: { "ORA -02291: restricción de integridad (FK_GUESTS_APPOINTMENTS) violada - clave principal no encontrada "}
¿Qué estoy haciendo mal?
ACTUALIZACIÓN: Para crear las identificaciones en la base de datos, estoy usando una secuencia para cada tabla y un gatillo antes de inserción para obtener el siguiente valor. Cuando creo un solo objeto, p. una cita sin invitados, se inserta en la base de datos y genera el id.
que he hecho exactamente lo mismo en EF y funciona para mí. Las claves primarias en ambas tablas son números automáticos. Estoy usando el servidor sql para el almacenamiento de datos –
Estoy usando secuencias y un disparador antes de insertar ...Cuando intento simplemente crear una cita sin invitados, genera una identificación, y cuando trato de crear un invitado con una cita ID existente, también funciona correctamente – Canastro
@MuhammadAdeelZahid Está usando Oracle, no SQL Server –