私は新しいNews
アイテムを作成するとき、私は、3つのテーブルEntity Frameworkの中に多対多の関係
- ニュース
- NewsCategory
- カテゴリー
を持っていますその新しい項目にカテゴリを割り当てる必要があります。
私のコードはNewsToSave
対象に選択したカテゴリを割り当てるには、どのように
var NewsToSave = new News();
NewsToSave.NewsBody = model.NewsBody;
NewsToSave.NewsTitle = model.NewsTitle;
NewsToSave.NewsImagePath = NewsImagePath;
NewsToSave.NewsDate = System.DateTime.Now;
db.News.Add(NewsToSave);
db.SaveChanges();
foreach (var id in SelectedIDs)
{
// How to assign selected categories to NewsToSave object and save the Ids in the middle table
}
のように見えますか?
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
modelBuilder.Entity<NewsToSave>()
.HasMany(c => c.Categories).WithMany(i => i.NewsToSaves)
.Map(t => t.MapLeftKey("NewsToSaveID")
.MapRightKey("CategoryID")
.ToTable("NewsCategory"));
}
て、コメントを追加し、データを処理:
は、あなたがこの方法あなたのコンテキストをオーバーライドすることができ、あなたに
フレームワークの2つのテーブルだけがナビゲーションプロパティで表示されます。マッピングテーブルはEF –
によって管理されますあなたのお手伝い...どうか私の問題を解決するのに手伝ってください。 – Lucy
選択したIDのすべてのカテゴリベースを取得し、次に 'NewsToSave.Categories = categories;'を実行します。あなたがマッピングを正しく行ったと仮定すると(多くの場合、多くの場合)、EFは3番目のテーブルを作成します –