2013-05-23 2 views
0

다른 테이블의 키로 두 필드의 연결을 사용하는 타사 데이터베이스를 쿼리하려고합니다. 다음 linq-to-sql 쿼리를 사용하려고했지만 런타임 오류가 발생했습니다 'LINQ to Entities'System.String Concat (System.String []) 메서드를 인식하지 못하고이 메서드를 저장소로 변환 할 수 없습니다. 표현.'필드를 조인 용으로 연결

Dim result = From records In db.TableA 
    Join records2 In db.TableB 
    On records.FieldA + "*" + records.FieldB Equals records2.KeyField 

이 기능을 사용하려면 어떻게해야합니까?

+0

'+'연산자 사용에 문제가 있습니까? – Neolisk

+0

'FieldA'와'FieldB' 둘 다 문자열 유형입니까? –

답변

0

데이터베이스를 제어 할 수있는 경우. 가장 쉬운 해결책은 2 열 키를 단일 열로 생성하는 계산 된 값을 추가하고 적절한 키와 같이 다른 테이블과 직접 조인하는 것입니다. 또한 원하는 경우 성능 유지를 위해 값을 쉽게 유지하고 인덱스를 추가 할 수 있습니다 (SQL Server의 경우 다른 DB에 대해서는 확실하지 않음).

제 3 자 데이터베이스에서 테이블을 변경하는 것이 싫다면 테이블에서 계산 된 열과 함께 사용할 프로그램보기를 사용하여 테이블을 래핑하도록 선택할 수 있습니다.

관련 문제