Tôi đang sử dụng Entity Framework lần đầu tiên và tôi đang cố gắng tạo một đối tượng với một bộ sưu tập (và tôi muốn tất cả các đối tượng trong bộ sưu tập được tạo ra trong cơ sở dữ liệu) nhưng tôi có một số vi phạm khóa ngoại.Entity Framework One-To-Many Insert - Ngoại lệ vi phạm
bảng mẫu của tôi:
table APPOINTMENTS: ID, VAR1, DATE_APPOINTMENT
table GUESTS: ID, APPOINTMENT_ID, USER_ID, VAR2, VAR3
mã kiểm tra của tôi:
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);
Tại DomainService tôi có:
public void InsertAppointment(APPOINTMENTS appointment)
{
using (var context = this.ObjectContext)
{
context.AddToAPPOINTMENTS(appointment);
context.SaveChanges();
}
}
Nhưng tôi nhận được lỗi này: { "ORA -02291: ràng buộc toàn vẹn (FK_GUESTS_APPOINTMENTS) vi phạm - không tìm thấy khóa chính "}
Tôi đang làm gì sai?
CẬP NHẬT: Để tạo ID trong cơ sở dữ liệu, tôi đang sử dụng chuỗi cho mỗi bảng và trình kích hoạt trước khi chèn để nhận giá trị tiếp theo. Khi tôi tạo một đối tượng, ví dụ: một cuộc hẹn mà không có khách, nó chèn vào cơ sở dữ liệu và nó tạo ra id.
tôi đã làm chính xác điều tương tự trong EF và nó hoạt động cho tôi. Các khóa chính trong cả hai bảng là số tự động. Tôi đang sử dụng máy chủ sql để lưu trữ dữ liệu –
Tôi đang sử dụng chuỗi và trình kích hoạt trước khi chèn ...Khi tôi cố gắng tạo một cuộc hẹn mà không có khách, nó tạo ra một ID, và khi tôi cố gắng tạo một khách với một cuộc hẹn hiện tại, nó hoạt động chính xác cũng – Canastro
@MuhammadAdeelZahid Ông đang sử dụng Oracle, chứ không phải SQL Server –