2009-03-06 1 views
18

linq-to-sql과 ado.net 데이터 서비스를 함께 사용하면 이상한 오류가 발생합니다. 원격 데이터베이스에 연결하는 간단한 Silverlight 응용 프로그램이 있습니다. 먼저 linq-to-sql 클래스를 추가하고 테이블을 디자이너로 드래그했습니다. 그런 다음 ADO.NET 데이터 서비스를 추가하고 DataService 참조가 L2S 데이터 컨텍스트를 가리 키도록 업데이트했습니다.Linq-to-SQL을 사용하는 ADO.NET 데이터 서비스

문제없이 컴파일되었습니다.

내가 IE에서 서비스를 열 때 나는 데이터 서비스에 다음 속성을 추가, 그래서 나는 즉시 오류 :

예외 :이 자세한 오류 메시지가 나타납니다

[System.ServiceModel.ServiceBehavior(IncludeExceptionDetailInFaults = true)] 

메시지가 '데이터 컨텍스트 유형'DataClasses1DataContext '에 요소 유형이 엔티티 유형이 아닌 상위 IQueryable 속성'table1 '이 있습니다. IQueryable 속성이 엔티티 유형인지 확인하거나 데이터 컨텍스트 유형의 IgnoreProperties 특성을 지정하여이 속성을 무시하십시오.

L2S 디자이너에서 사용하는 데이터베이스 테이블에 이러한 일이 발생합니다!

이 오류는 무엇이며 왜 받아들입니까?

+0

각각의 엔드 포인트는 http : // localhost/{ServiceName}/{EndPointName} – jdiaz

답변

21

DataServiceKey 특성으로 클래스를 꾸밀 필요가 있습니다.

Marc의 블로그 here 및 MSDN 블로그 here에 대한 자세한 내용 (후자는 많은 관계가 많지만 DatServiceKey 특성을 다룹니다).

+0

에 의해 액세스 될 수 있습니다. 많은 설명이되었지만 XML 형식의 엔티티가 표시되지 않는 이유는 무엇입니까? 단지 DEFAULT table1이라고합니다. 나는 심지어 config.SetEntitySetAccessRule ("table1", EntitySetRights.All)을 사용했다. – jdiaz

+0

또한 테이블에 기본 키가 설정되지 않은 경우 DataServiceKey로 설정할 속성을 어떻게 알 수 있습니까? – jdiaz