2016-08-31 2 views
0

삽입이 무엇입니까? 모델이 현재 로선엔티티 프레임 워크,

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

이 모델은 수정되어야한다. 나는 당신의'NewsComment' 실체에 대한 필요성을 보지 못합니다. 유용한 정보가 없습니다. 'Comment'를'News'의 네비게이션 속성으로 만듭니다. 그것이 many-to-many 일 경우, 관계는'NewsComment' 엔티티의 필요없이 내부적으로 처리 될 것입니다. –

+1

이 예제 또는 실제 스키마입니까? 사용자 경험을 통해 여러 뉴스 항목에 설명을 적용 할 수 없다는 이유 때문에 질문합니다. –

+0

@ErikPhilips 이전에 (특히 코멘트 용으로)이 유형의 모델을 사용 해왔다. 그것은 many-to-many를 의미하는 관계 테이블로 구현되지만 실제로는 하나의 주석이 여러 개의 부모 객체에 연결되어서는 안되기 때문에 일대 다입니다. –

답변

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 클래스 . News 엔티티는 many-to-many 특성 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();