2013-02-01 2 views
1

.NET Framework 4 및 WPF에서 ESRI ArcGIS Desktop이라는 소프트웨어 패키지 호출을위한 응용 프로그램 확장을 만들었습니다. 그것은 테이블 형식의 데이터에 의존 할 것이지만이 데이터에 대한 저장 옵션은 가능한 한 유연하게하고 싶습니다. 그래서 사용자는 Access mdbs, csv, xml, SQL Server 등과 같은 것들을 가져올 수 있습니다.데이터 원본을 변경할 수있을 때 LINQ를 사용할 수 있습니까?

저는 LINQ를 사용하고 싶습니다. 그러나 새로운 것이므로 적합하지 않은 것으로 생각됩니다. 내가 읽은 EDMX는 괜찮 았지만 LINQ가 실제로 제대로 작동하지 않을지 확실하지 않았습니다. IQueryable이 작동하는 것처럼 보였습니다. 그러나 나는 너무 오래 회전하여 내 바퀴를 돌리기 전에 잘못된 나무를 짖고 있는지 확인하고 싶었습니다.

IQueryable과 같은 것을 더 자세히 살펴야합니까, 아니면 지나치게 복잡하게 만들고 IEnumrable, List 또는 Dictionaries 등과 같은 것을 사용할 수 있으며 LINQ는 그와 잘 맞아야합니까? 아니면이게 전혀 효과가 없을까요?

+0

나는 그것이 당신이 필요로하는 것에 많이 달려 있다고 생각합니다. SQL에서 쿼리를 번역해야합니까 (소스가 SQL 데이터베이스 일 때)? – svick

+0

귀하의 질문은 구체적으로 ArcGIS를 대상으로하지만 유사한 토론은 http://stackoverflow.com/q/7411504/861716에서 찾을 수 있습니다. 특히 [이 답변] (http://stackoverflow.com/a/7414597/861716)에서는 문제를 발견했습니다. 'IQueryable'은 구현에 따라 완전히 다르게 동작 할 수 있습니다. 이 작업은 수행 할 수 있지만 가능한 차이점을 알아야합니다 (대소 문자 구분, null 값 처리, 특정 데이터 유형 지원, linq 메소드가 쿼리 공급자에 의해 허용되거나 허용되지 않음). 솔직히 말해봐. 지원되는 플랫폼의 수를 먼저 제한하십시오. –

+0

고마워. 필자는 ArcGIS에 대해 언급하지만 코드의 해당 부분에 많은 영향을 미칠 것이라고 생각하지는 않습니다. 데이터 소스를 치는 코드 부분이 ArcGIS의 어떤 부분 (레이어, 테이블 등)을 통하지 않고 직접 그렇게 할 것이라는 의미입니다. 그래서 ADO를 사용하는 것과 비슷합니다. 대부분 호스트 응용 프로그램 개체 모델 외부에 있습니다. 데이터가 실제로 소스에서 추출 될 때 Arc 객체 모델이 작동하게됩니다. – Ernie

답변

0

IEnumerable<T>과 함께 LINQ to Objects를 사용할 수 있습니다. ArcObjects와 함께 작업하는 경우 "컬렉션"이 .NET 컬렉션이 아니기 때문에 데이터 소스를 직접 사용할 수는 없습니다.

당신은 쉽게 자신의 IEnumerable<T> 래퍼로 래핑 한 다음 LINQ to Objects를 사용하여 쉽게 래핑 할 수 있습니다.

+0

감사합니다. 실제로 도움이됩니다. LINQ To Objects는 내가 정말로 필요로하는 부분이다. 그래서 내가 소스에서 파일 입출력 또는 데이터 연결을 통해 소스에서 데이터를 얻을 수있는 다음 컬렉션에 전송하고 LINQ와 함께 맞았을 것? 내가 더 많은 독서를 할 것처럼 보인다. – Ernie

+0

@Ernie 예 - LINQ to Objects는 IEnumerable '을 구현하는 한 "가상"컬렉션 (스트리밍되는 것 등)뿐만 아니라 모든 메모리 내 컬렉션에 대해 작동합니다. –

관련 문제