私は3つのテーブルを持っています、
1)顧客(Id、Name、bla bla)
2)CustomerGroups(GroupId、GroupName)
3)CustomerInGroups(CustomerId、GroupId)
using (var context = DataObjectFactory.CreateContext())
{
context.Customers.Add(entity);
context.SaveChanges();
return entity.Id;
}
CustomerInGroupsにレコードを追加するにはどうすればよいですか?EntityFrameworkは、このような多対多のマッピングテーブルのエンティティを生成しません
編集:
CustomerとCustomerGroupsの両方のId列が自動インクリメントに設定されています。
つまり、CustomersGroupテーブルには、
Id Name
----------------------------
1 Normal
2 VIP
ポスターの1つが示唆したように、私はこれをやってみました:
entity.CustomerGroups = new List<CustomerGroup>
{
new CustomerGroup {Id = 2 }
};
context.Customers.Add(entity);
context.SaveChanges();
return entity.Id;
ただし、これを行ったとき、次のようにマッピングテーブルにレコードを作成する代わりに、次のようにします。
CustomerId GroupId
----------------------------
1 2
私が得たのは
CustomerInGroups
CustomerId GroupId
----------------------------
1 3
CustomerGroups
Id Name
----------------------------
1 Normal
2 VIP
3 NULL
それは実際に私のCustomerGroupsテーブルに別のエントリを作成しましたが、それは私が望むものではありません