0

新しいレコードを作成するときにこのシナリオがあり、その関連付けも再作成されます。

User newUser = new User();
newUser.UserGroupID = 1;
newUser.UserGroup = UserGroup.Find(1);

using (InventorySystemEntities context = new InventorySystemEntities(new ConfigurationManager().ConnectionString))
{
    context.Users.Add(newUser);
    context.SaveChanges();
}

保存すると、新しい User レコードが作成され、新しい UserGroup レコードも作成されます。

4

3 に答える 3

1

UserGroup.Find() と Users.Add() に異なるコンテキストを使用していますが、これは問題ありません。両方に同じコンテキストを使用すると、正常に機能します。

using (InventorySystemEntities context = new InventorySystemEntities(new ConfigurationManager().ConnectionString))
{
    var newUser = new context.Users.CreateNew();
    newUser.UserGroup = context.UserGroup.Find(1);

    context.Users.Add(newUser);
    context.SaveChanges();
}
于 2013-07-04T14:43:29.273 に答える
0

これは、この質問と同じ問題です。Find と SaveChanges に同じコンテキストを使用するか、何らかの理由でそれができない場合は、Attach() を使用して、見つかった UserGroup を新しいコンテキストにアタッチします。

于 2013-07-04T15:00:03.137 に答える