ASP.NETMVC4アプリでEF5コードファーストを使用しています。製品とパートナーがあり、多くのパートナーを製品に割り当てることができます。
Productエンティティには、次のものがあります。public ICollection Partners {get; セットする; }
そして、パートナーエンティティには次のものがあります。publicICollection Product {get; セットする; }
したがって、私のSQLサーバーでは、PartnerProductsmany-2-manyテーブルが最初にコードによって作成されます。
次に、このアクションメソッドがあります。
public ActionResult AssignPartner(long productId, long partnerId) {
var product = productRepository.Find(productId);
var partner = partnerRepository.Find(partnerId);
if (product.Partners == null) {
product.Partners = new List<Partner>();
}
product.Partners.Add(partner);
productRepository.Save();
return RedirectToAction("Edit", new{ Id = productId });
}
しかし、その結果、新しいPartnerProducts行が作成され(ok)、Partnersテーブルに新しいパートナーも作成されますか?どういうわけかEFは私が追加したパートナーが新しいレコードであると考えなければなりませんか?
ここで何が欠けていますか?