Как ваша модель стоит сейчас, вы можете сделать это следующим образом:
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();
Edit: Чтобы удалить комментарий с текущей моделью, удалите его из свойства коллекции:
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'. Он не содержит никакой полезной информации. Сделайте 'Комментарии' навигационным свойством' News'. Если это много-ко-многим, это отношение будет обрабатываться внутренне, без необходимости в сущности 'NewsComment'. –
Это пример или реальная схема? Я спрашиваю, потому что из опыта пользователя не имеет смысла, что комментарий может быть применен к нескольким новостям. –
@ErikPhilips Я видел этот тип модели, используемой ранее (специально для комментариев). он реализуется с таблицей отношений, что подразумевает много-ко-многим, но на практике это один-ко-многим, потому что один комментарий НЕ должен быть привязан к нескольким родительским объектам. –