2017-08-01 4 views
0

既存の子供obj Days to Courseのリストを割り当てたいと思います。しかし、Imはpkの問題や重複した行を取得します。 Daysはチェックまたはチェックを外すことができるので、最初はすべて削除し、最後にすべてを追加する必要があります。Entity Frameworkは、多対多の関係で既存の子を親に割り当てます。

Course() 
{ 
    int Id {get;set;} 
    string Descripcion {get;set;} 
    List<DayOfWeek> Days {get;set;} 
} 

DayOfWeek() 
{ 
int Id {get;set;} 
string Name {get;set;} 
List<Course> Courses {get;set;} //Just for Entity Framework to create the many-to-many relation 
} 

いくつかの他の情報

  • コード最初
  • 遅延ロード
  • 切断(リポジトリ/ servideのWEBAPI層、UI層)例えば
  • エンティティとDTOオブジェクトコースはCourseDataとviceversaのUIにマッピングされます。

私は新しいオブジェクトをアタッチすると、それが追加として設定されている、私は私がのDayOfWeekエンティティであなたの外部キーをマップするために推薦する

+0

修正したいコードは表示されません。 –

+0

[こちら](https://stackoverflow.com/questions/14307838/entity-framework-adding-existing-child-poco-to-new-parent-poco-creates-newchi)と[ここ](https ://stackoverflow.com/questions/6823947/adding-item-with-many-to-many-relationship-in-entity-framework)あなたが試している更新コードを投稿してください。 –

答えて

0

ことを修正する必要があります。

DayOfWeek() 
{ 
int Id {get;set;} 
int CourseId {get;set;} 
string Name {get;set;} 
} 

次にできること:

context.Set<Course>().Add(course); 
dayOfWeek.CourseId = course.Id; 
context.Set<DayOfWeek>().Attach(dayOfWeek); 
context.Entry(dayOfWeek).State = EntityState.Modified; 
context.SaveChanges(); 

外部キーを使用すると、あなたの人生はEFで簡単になります。

+0

詳細については、この記事をチェックしてください:https://stackoverflow.com/questions/25441027/how-do-i-stop-entity-framework-from-trying-to-save-insert-child-objects –

+0

ありがとうございます多対多の関係です....月曜日にCourse1とCourse2を持つことができます –

+0

M:Nテーブルを表すエンティティを作成します... –

関連する問題