2011-04-21 2 views
2

나는 여러 코스를 포함 할 수있는 모듈 인 관계를 정의했습니다.엔티티 프레임 워크 4 - 기존 모델을 연결에 추가

모듈을 코스에 추가 할 수있는 인터페이스가 있습니다. 나는 아래의 코드를 시도하지만, 새 모듈이 결과는 모듈 테이블에 생성되고, 다음 적절한 방법이 될해야합니까 과정

int moduleID = viewModel.moduleID; 
course.Modules.Add(new Module { ID = moduleID }) 
SaveChanges(); 

에 추가?

편집 : 중단 점을 사용한 디버깅은 정수 moduleID가 정확함을 보여줍니다.

답변

4

당신이 시도 할 수 있습니다 :

var module = new Module { ID = viewModel.moduleID }; 
// Attach first so that context doesn't track module as a new one 
context.Modules.Attach(module); 
// Now make connection to attached module 
course.Modules.Add(module); 
context.SaveChanges(); 

당신은 내가 연결을 데이터베이스에서 모듈을로드 할 필요가 없었다 볼 수 있듯이. 이것은 다 대다 관계에 매우 효과적이지만 일대 다 관계의 경우 더 복잡 할 수 있습니다.

1

새 모듈을 만들고 있습니다. 즉, 정상적인 동작을 의미합니다. 당신이해야 할 일은 데이터 컨텍스트에서 moduleID에 해당하는 Module 개체를 얻은 다음이를 과정에 추가하는 것입니다. 이 도움이

int moduleID = viewModel.moduleID; 
var module = context.Modules.FirstOrDefault(m => m.ID == moduleID); 
course.Modules.Add(module) 
SaveChanges(); 

희망 :

관련 문제