私は、Contactエンティティと多対多の関係を持つBusinessUnitというエンティティを持っています。EF 4.1コード・ファースト:多対多のトリガー更新
public BusinessUnitConfiguration()
{
HasMany(c => c.Contacts)
.WithMany()
.Map(m =>
{
m.ToTable("BusinessUnitContact");
m.MapLeftKey("BusinessUnitId");
m.MapRightKey("ContactId");
});
ToTable("BusinessUnit");
}
public ContactConfiguration()
{
ToTable("Contact");
}
連絡先エンティティは、親がどのような関係にあるかわかりません。私たちはSilverlight + WCFを使用しているため、遅延読み込みとプロキシの作成は無効になっています。
BusinessUnitインスタンスと0個以上のContactインスタンスで構成されるクライアント上のオブジェクトグラフを作成または変更し、保存するWCFサービスに送信します。ここで新しいコンテキストが作成され、必要に応じて追加/削除されます変更を保存する前に
問題は、既存のビジネスユニットの連絡先コレクションに新しい連絡先を追加すると、EFはジャンクションレコードを挿入しないということです。新しい連絡先を追加することはできますが、ビジネスユニットを連絡先にマップするBusinessUnitContact行。
BusinessUnitのContactsプロパティは、ObservableCollection < Contact>です。親ビジネスユニットが追加されたときに機能しますが、追加されていないときに機能します。
連絡先関連付けをコンテキストに添付するときにEFに変更を通知して、新しいジャンクションレコードを挿入する必要があるようにする方法はありますか?
変更を行うコードを表示する必要があります。 –