2008-11-11 2 views
1

나는 이것으로 큰 반응을 얻을 것으로 기대하지 않기 때문에이 경험이 있다면이 모든 기여는 인정 될 것입니다.Linq to SQL 데이터 소스로 Visual Studio Report Designer를 사용할 때의 문제

Linq to SQL 데이터 소스로 Visual Studio Report Designer를 사용하려고하는데 Visual Studio Report Designer를 사용해 본 경험이 없습니다.

마법사를 통해 객체 데이터 소스를 사용하면 단일 엔티티 유형 (즉, SQL 테이블)을 쉽게 나열하는 간단한 보고서를 얻을 수 있습니다. 내 질문은 익명 반환 유형을 가진 조인, 합계 등 복잡한 Linq 쿼리를 받아들이도록 보고서를 얻는 방법입니다. 이 시점에서 시도 할 경우 보고서 디자이너에서 컴파일 타임 오류가 발생하여 점 표기법이나 별칭 이름을 사용하여 쿼리 결과에서 참조해야하는 필드로 이동하려고합니다.

보고서 항목의 표현은 현재 데이터 세트 내에서 필드 를 참조 할 수 있습니다 - : 나는

오류는 ... 마법사에 지정된대로 디자이너가 동일한 유형을 기대하고 있기 때문입니다 생각 범위 또는 집계 내에있는 경우 지정된 데이터 집합 범위.

아마도 DataSets를 사용하는 것이 더 좋을까요?

답변

2

보고서에 필요한 모든 속성 (예 : MyData)을 포함하는 간단한 클래스를 작성합니다. 각 속성에 간단한 .NET 유형을 사용하십시오. 문자열, int 등

IEnumerable<MyData>을 반환하는 GetXxx 메서드로 다른 클래스를 작성하십시오. 이 Get 메서드는 Linq 쿼리의 결과를 반환해야합니다. 반환하기 전에 .ToList()를 수행하여 메모리 목록을 가져올 수 있습니다. 반환하기 전에 연결을 닫을 수 있습니다.

컴파일.

보고서 디자이너를 열면 (동일한 솔루션에서) 데이터 소스 창에 작성한 Get 메서드로 MyData가 나열되어야합니다.

이 데이터 소스의 필드를 보고서 디자이너로 끌어온 다음 새 ReportViewer 컨트롤에서이 보고서를 참조하면 ObjectDatasource가 자동으로 만들어지고 연결됩니다.

희망 하시겠습니까?

+0

감사합니다. 내가 왜 그렇게 생각하지 않았어? 나는 그것을 밖으로 시도 할 것이다. –