2010-12-16 2 views
0

VS2008 사용 & .NET 3.5. " 'xxx.BuildingsDataTable'소스 유형에 대한 쿼리 패턴 구현을 찾을 수 없습니다. ''위치를 찾을 수 없습니다. 명시 적으로 '건물'변수의 유형을 지정하는 것을 고려하십시오. (xxx는 네임 스페이스입니다.)LINQ를 입력 된 데이터 집합에 오류가 있습니다. "소스 유형에 대한 쿼리 패턴 구현을 찾을 수 없습니다."

내 LINQ 쿼리 :

var query = from building in buildingDS.Buildings 
          where building.BuildingID == 1 
          select new { building.Name }; 

buildingDS가 형식화 된 데이터 집합입니다 내가 System.Data에 대한 참조를 가지고) VS는 buildingDS를 인텔리 수 있지만 인텔리되지 건물 (buildingID & 이름이 빨간색으로되어 있습니다... Linq, System.Data.DataSetExtensions & System.Core.DataSet에 대한 EnforceConstraints = true. 저는 dataRow 유형으로 건물을 캐스팅했지만 작동하지 않았습니다. 나는 '건축'과 관련이있다.

어떻게하면 쿼리를 컴파일 할 수 있습니까?

답변

1

입력 한 데이터 세트가 새로운 .Net 3.5 생성기로 처리되었는지 확인하십시오.
각 테이블 클래스는 TypedTableBase<TRow>을 상속해야합니다.

테이블 클래스가 DataTable을 직접 상속하는 경우 입력 된 데이터 집합을 다시 생성하십시오.

또한 코드 파일에 using System.Data이 포함되어 있는지 확인하십시오.

+0

감사합니다. WSDL로 생성 된 형식화 된 데이터 집합은 TypedTableBase를 지원하지 않지만 데이터 세트는 일반 데이터 세트입니다. WCF에서는 지원되지만 asmx에서는 지원되지 않습니다. 그래서 내가 입력 한 데이터 집합에 LINQ를 사용할 수 없다고 생각합니다. –

+1

@ 토니 : 여전히 buildingDS.Buildings.Rows.Cast ()'에 건물에서'를 쓸 수 있습니다. 각 테이블의 확장 메소드에서이를 마무리 할 수 ​​있습니다. – SLaks

관련 문제