Je suis nouveau à Entity Framework et par conséquent cette question peut sembler un peu noobish.Entity Framework - Insérer dans des tables connexes
Je vais essayer d'expliquer mon scénario avec l'exemple Département-Employé J'ai deux tables "Département" et "Employé". Le département a une colonne d'identité DeptID. J'essaie de créer un nouveau département et d'y ajouter des employés nouvellement créés en une seule fois. Ci-dessous est mon code:
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()
}
Mais pour une raison quelconque, l'enregistrement n'est pas inséré. Il génère une erreur dans la deuxième requête d'insertion.
Voici les requêtes:
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()
L'erreur qu'il jette est à la ligne 4 de la deuxième requête. Donc, je suppose que quelque chose ne va pas avec l'identité. J'utilise MySQL.
Quelqu'un peut-il s'il vous plaît expliquer ce qui pourrait être faux?
EDIT: J'ai modifié le code SQL en fonction de cet exemple. Je ne peux pas donner mes véritables détails de la table.
Ok, je suppose que j'aurais dû le mentionner aussi dans mon post original mais je ne l'ai pas fait :(Mon mauvais, j'utilise des entités auto-suivi. vous avez mentionné dans votre code, je ne vois pas l'attribut [Key] dans mon modèle, mais je vois que la clé est correctement définie dans l'edmx (XML) .je pense que je vais essayer un projet séparé avec seulement ces 3 – Vinod
Ok, j'ai compris quel était le problème, j'avais une colonne dans mon tableau sous le nom 'Condition' qui se trouve être un mot-clé dans MySQL :-( – Vinod