2010-05-06 1 views
2

Microsoft에서 첫 번째 WCF RIA Services 응용 프로그램을 작성하기위한 연습 과정을 수행하고 있으며 Microsoft에서 WCF RIA Services 응용 프로그램을 만들 때 문제가 발생했습니다. 데이터 컨텍스트의 SubmitChanges() 메소드.'Identity'패턴이있는 열 수정 WCF RIA 서비스에서 지원되지 않습니다.

업데이트되는 테이블에는 SQL Server 2008의 'CourseID'열에 설정된 ID 사양이 있습니다. 그러나 PRIMARY 키는 다른 두 필드의 합성입니다.

SubmitChanges()를 사용하면 브라우저에서 응용 프로그램이 잠기고 처리되지 않은 예외가 발생합니다. 이 예외를 처리함으로써 메시지를 얻을 수있었습니다. 'Identity'패턴을 가진 열 수정은 지원되지 않습니다. 이것은 'CourseID'열을 나타냅니다.

신원 정보를 끄면 문제가 해결되지만 자동 증가 ID가 필요합니다. 어떤면에서 이것이 지원되지 않습니다. 또는 나는 어디로 잘못 가고 있는가?

+0

이것은 (난 단지 EF하지 RIA 서비스에 그것을 한 적이 있지만) 작동하지만,'StoreGeneratedPattern'이 설정되어 있는지 확인한다 EDMX의 CourseID에 올바르게 적용됩니다. –

+2

나는 지구상에서 왜 그런 구조를 가질 것인가를 생각하려고 노력하고있다. PK가되어야하는 서로 게이트 키가있는 경우 다른 두 키는 고유 한 인덱스 예를 가져야하지만 성능상의 이유와 변경시 정보 업데이트의 어려움 때문에 복합 키는 PK에 대해 매우 좋지 않습니다. – HLGEM

+0

@HLGEM 어제 퇴근 후 곧이 결론에 도달했습니다. 데이터베이스 구조가 여기에 있습니다. 그 생각을 강화 해줘서 고마워. 나는 질문을 끝내겠다. – Banford

답변

0

데이터베이스 구조에 문제가 있습니다.

+0

데이터베이스 구조가 잘못된 이유를 설명 할 수 있습니까? 나는 같은 문제에 직면하고 있지만 Azure 모바일 서비스에 의해 자동으로 생성 된 필드를 사용하고 있습니다. – WiteCastle

1

위의 설명은 StoreGeneraratedPattern을 "Computed"로 설정해야한다고 지정했기 때문에.

CSDL에서 값을 변경하는 모델 디자이너에서이 값을 변경할 수 있습니다. 그러나 작동하려면 SSDL에서 값을 변경해야합니다. 이를 변경하는 유일한 방법은 수동으로 XML을 수정하는 것입니다.

"데이터베이스에서 모델 업데이트"와 같이 SSDL을 다시 생성하므로 변경 사항을 다시 적용해야합니다.

+0

이 변경은 수동으로 작성 및 편집에서 속성을 무시합니다.이 속성이 값이 "기본값"인 경우 편집에서 값을 변경하려는 경우이 속성을 무시하고 여전히 값을 "기본값"으로 수정 한 후 – ch2o