实体框架多对多,插入

时间:2016-08-31 18:58:39

标签: c# entity-framework linq

这就是我的实体的样子:

enter image description here

我的问题是如何将Comment对象添加到News对象以及如何更新和删除Comment新闻?

以下是News类:

News news = db.News.SingleOrDefault(n => n.NewsId == Id);

1 个答案:

答案 0 :(得分:2)

正如你的模特现在所说,你可以这样做:

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();