Я новичок в Entity Framework, и, следовательно, этот вопрос может показаться немного дурацким.
Я попытаюсь объяснить свой сценарий на примере отдела-сотрудника. У меня есть две таблицы "Отдел" и "Сотрудник".У отдела есть идентификационный столбец DeptID.Я пытаюсь создать новый отдел и добавить в него вновь созданных сотрудников за один раз.Ниже мой код:
using (MyDB context = new MyDB())
{
Department dept = new Department();
dept.Name = "My Department";
Employee emp = new Employee();
emp.Name = "Emp Name";
emp.Department = dept; //Tried dept.Employees.Add(emp) also, same result
context.AddObject("Department", dept);
context.SaveChanges()
}
Но по какой-то причине запись не вставляется.Он выдает ошибку во втором запросе вставки.
Ниже приведены запросы:
INSERT INTO Department
(Name)
VALUES ('Dept1' /* @gp1 */);
SELECT ID
FROM Department
WHERE row_count() > 0
AND `ID` = last_insert_id()
--------------------------
INSERT INTO Employee
(DeptID,
Name)
VALUES (19,
'Name'); /* @gp1 */
SELECT id
FROM Employee
WHERE row_count() > 0
AND `id` = last_insert_id()
Выдаемая ошибка - в строке 4 второго запроса.Так что я предполагаю, что что-то не так с идентичностью.Я использую MySQL.
Может кто-нибудь объяснить, что может быть не так?
РЕДАКТИРОВАТЬ: я изменил SQL для соответствия этому примеру.Я не могу дать свои реальные данные таблицы.