0
を挿入これは私のエンティティがどのように見えるかです:Entity Frameworkの多くに多く、
私の質問はNews
オブジェクトとどのようにニュースのComment
を更新し、削除するためにComment
オブジェクトを追加する方法ですか?ここで
がNews
クラスです:
News news = db.News.SingleOrDefault(n => n.NewsId == Id);
を挿入これは私のエンティティがどのように見えるかです:Entity Frameworkの多くに多く、
私の質問はNews
オブジェクトとどのようにニュースのComment
を更新し、削除するためにComment
オブジェクトを追加する方法ですか?ここで
がNews
クラスです:
News news = db.News.SingleOrDefault(n => n.NewsId == Id);
モデルが今立っているとして、あなたはこのようにそれを行うことができます。個人的に
News news = db.News.SingleOrDefault(n => n.NewsId == Id);
Comment comment = new Comment { Body = "This is my comment" };
NewsComment newsComment = new NewsComment { News = news, Comment = comment };
news.NewsComments.Add(newsComment);
db.SaveChanges();
、私はNewsComment
エンティティを奪うようにあなたのモデルを調整します。 News
エンティティは多対多のプロパティComments
を持ち、リレーションテーブルは内部的に処理されます。あなたのコードは、その後になる:
News news = db.News.SingleOrDefault(n => n.NewsId == Id);
Comment comment = new Comment { Body = "This is my comment" };
news.Comments.Add(comment);
db.SaveChanges();
編集:、あなたの現在のモデルとのコメントを削除コレクションプロパティから削除するには:
News news = db.News.SingleOrDefault(n => n.NewsId == Id);
NewsComment commentIDontWant = news.NewsComments.First(nc => nc.Comment.Body == "Bad Comment");
news.NewsComments.Remove(commentIDontWant);
db.SaveChanges();
私の意見では、あなたのモデルが改訂されなければなりません。私はあなたの 'NewsComment'エンティティの必要性を見ません。それは有用な情報を保持していません。 'Comment'を' News'のナビゲーションプロパティにします。それが多対多の場合、関係は 'NewsComment'エンティティを必要とせずに内部的に処理されます。 –
これは実際のスキーマですか?ユーザーエクスペリエンスから、複数のニュース項目にコメントを適用できることは意味をなさないため、私は尋ねます。 –
@ErikPhilips私は以前に(特にコメントのために)このタイプのモデルを使用してきました。これは多対多を意味するリレーションテーブルで実装されますが、実際には1つのコメントを複数の親オブジェクトにアタッチするべきではないため、1対多です。 –