私のデータは、Exhibitions
とMarkets
の多対多の関係を持っています。 新しい展覧会を作成する際には、既存の市場を割り当てる必要があります。EF6多対多の関係重複するエントリの追加
public virtual TDto Create(TDto data)
{
TEntity entity = ToEntity(data);
DbEntityEntry<TEntity> dbEntity = Context.Entry<TEntity>(entity);
dbEntity.State = EntityState.Added;
UpdateReferences(data, dbEntity);
Context.SaveChanges();
data = ToModel(dbEntity.Entity);
return data;
}
アイデアは、それぞれの具体的なリポジトリが他のエンティティへの参照を更新するために、それは自身の取り扱いだ定義することができるようにすることです: 私はこのようになります一般的なリポジトリを作成しました。
すでに存在する市場で新しい展覧会を作成すると、関連付けられた市場が複製されるという問題が発生します。私の質問は、EFの代わりに複製を作成するのではなく、既存の市場を関連付けるために説得する方法である、だから、
Configuration.LazyLoadingEnabled = false;
Configuration.ProxyCreationEnabled = false;
:私のコンテキストは次のセットアップを使用していますか?
このような問題を回避するために、ナビゲーションプロパティと一緒にIDプロパティを使用することについて多くを読んだが、多対多の関係ではこれはオプションではないようだ。
私の問題は、既存のMarketsが作成された展覧会に関連付けられていないということです。代わりにMarketsは重複として作成されます。 – Jensen