2013-08-01 1 views
0

내 데이타베이스에있는이 테이블이 업데이트 할 수 없습니다EntitySet (NO 삽입 기능)

  • 비디오 (IDVideo, 이름 ...)
  • 에피소드 (IDEpisode, 이름 ...)
  • 버전 (IDVersion는, 이름, ....)
  • VideosVersions (IDVideo, IDEpisode, IDVersion)를

이 버전은 비디오 또는 에피소드와 두 경우의 관계에 대한 수 있습니다 N입니다 : 엔 , 비디오는 많은 버전을 가질 수 있으며 버전은 많은 비디오 또는 에피소드에 할당 될 수 있습니다.

내 edmx 모델에는 4 개의 테이블이 있습니다.

나는이 코드 사용 예를 들어 동영상에 새 버전을 할당하려고 :

VideosVersions myVideoVersion = new VideosVersions(); 
myVideoVersion.IDVideo = paramVideo.IDVideo; 
myVideoVersion.IDVersion = paramVersion.IDVersion; 

myContext.VideosVersions.Add(myVideosVersions); 
myContext.SaveChanges(); 

을하지만 다음과 같은 예외가 얻을 :

Unable to update the EntitySet 'VideosVersions' because it has a DefiningQuery and no <InsertFunction> element exists in the <ModificationFunctionMapping> element to support the current operation. 

왜?

감사합니다.

EDIT : edmx 모델의 3 개 속성에는 키가 있으므로 잘못된 것이 아니라면 엔터티의 PK가 세 필드의 조합이라는 것을 의미합니까?

답변

2

매퍼는 아마도 어떤 열이 VideosVersions의 기본 키인지 알아낼 수 없습니다. 즉, 새 레코드를 삽입하는 방법을 알지 못하고 쿼리 메서드 만 제공합니다. 기본 키가 테이블에 제대로 정의되어 있는지 확인한 다음 매핑을 업데이트하십시오.

+0

edmx 모델의 3 개 속성에는 키가 있으므로 잘못된 것이 아니라면 엔터티의 PK가 세 필드의 조합이라는 것을 의미합니까? –

+0

해야합니다. 그러나 그들은 데이터베이스 테이블에도 설정되어 있습니까? 그렇지 않으면 EF는 그것들을 추측하려고하고 혼란 스러울 수 있습니다. –

+0

finnally 엔티티 대신 명령을 사용합니다. –