私はEntity Frameworkを初めて使用しています。したがって、この質問はちょっと嫌なことかもしれません。Entity Framework - 関連テーブルへの挿入
私は、Department-Employeeの例で私のシナリオを説明しようとします。私は2つのテーブル "Department"と "Employee"を持っています。部門にはID列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()
}
しかし、何らかの理由でレコードが挿入されません。 2番目の挿入クエリでエラーが発生します。
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()
がスローエラーが2番目の問合せの行4にある:
は、以下のクエリです。だからアイデンティティのことが何か間違っていると推測している。私はMySQLを使用しています。
誰でも間違っていると説明できますか?
編集:この例に合わせてSQLを変更しました。私は実際のテーブルの詳細を与えることはできません。
私はこれも私の元の投稿でこれを言及していたはずですが、私はしませんでした:(私の悪い、私は自己追跡エンティティを使用しています。私のモデルで[Key]属性は表示されませんが、Keyがedmx(XML)で正しく定義されていることがわかります。これらの3つのプロジェクトで別々のプロジェクトを試してみたいと思います – Vinod
問題が何であったかわかりましたテーブルの中に「Condition」という名前の列がありましたが、これはMySQLのキーワードになります:-( – Vinod