私はDBファーストメソッドであるEF4.1とDbContextPOCOコード生成を使用しています。
私のデータベースには、以下に示すように多対多の関係があります。
従業員
従業員ID
従業員名
アカウント
アカウントID
アカウント名
EmployeeAccount
従業員ID
アカウントID
新しい従業員を挿入し、既存のアカウントを割り当てようとすると問題が発生するため、基本的に次のように実行します。
Employee emp = new Employee();
emp.EmployeeName = "Test";
emp.Accounts.Add(MethodThatLooksUpAccountByName("SomeAccountName"));
context.Employees.Add(emp);
context.SaveChanges();
これが(誤って)実行しているSQLは、新しい[Account]レコードを挿入しようとしていますが、これは制約違反で失敗しています。もちろん、新しい[Account]レコードを挿入するべきではなく、[Employee]を挿入した後にのみ新しい[EmployeeAccount]レコードを挿入する必要があります。
何かアドバイス?ありがとう。