1

複雑な歴史的な理由から、2 つのテーブルがあります。

従業員

   [Key]
   public int employee_ID { get; set; }
   public Nullable<int> employeeStatus_ID { get; set; }
   public string employeeFirstName { get; set; }
   public string employeeSurname { get; set; }
   ...

ユーザー

   [Key]
   public virtual Guid UserId { get; set; }
   ...
   public virtual Employee Employee { get; set; }

ユーザーには従業員レコードが必要です。従業員レコードには (まだ) ユーザー レコードがない場合があります。

私のデータコンテキストでは、このように設定しています

   modelBuilder.Entity<User>().HasRequired(p => p.Employee)
                .WithOptional(x=>x.User);

バックグラウンドで、Entity Framework はユーザー オブジェクトに整数の外部キー Employee_employee_ID を作成しました。参考にはなりませんが、あります。

そして、私が良いと思ったのはすべてです。ただし、特定の状況では、従業員が効果的にユーザーにアップグレードされるため、次のような機能があります。

   employee = GetMyEmployee(employeeID);

      User NewUser = new User
                {
                    UserId = Guid.NewGuid(),
                    Username = userName,
                    ...
                    Employee = employee
                };

                Context.Users.Add(NewUser);
                Context.SaveChanges();

OK で保存し、新しいユーザーが作成されます。残念ながら、従業員の新しい重複コピーも新しい employee_id で作成されていることがわかりました。

どうすればこれを止めることができますか? エンティティ フレームワーク 6.01 の使用

4

0 に答える 0