2014-02-26 3 views
0

Linq to SQL 쿼리를 사용하여 콤보 박스 용 데이터 소스를 만들어야합니다.쿼리를 기반으로 쿼리 작성 - 연결이 작동하지 않음

즉 처음 이런 전체 이름과 성으로 FIRSTNAME 필드, 다음 순서를 연결할 필요

그러나 현재 (LQPersonList 쿼리이다) cboFindPerson.DataSource = LQPersonList .

'-- Create the first Query with concatenation 
    Dim LQ = From b In DCAppMain.tblPeopleMain 
     Where b.PeopleID = lngPeopleID And b.CurrentEmployee = True 
     Select FullName = b.LastName & ", " & b.FirstName, b.PeopleID 

'-- Create the 2nd Query based on first so I can order by FullName 
    Dim LQPersonList = From c In LQ 
     Order By c. 

그러나 내가 C가되면 intellisense는 사용할 수있는 필드가 없다고 말합니다.

승락 전의 쿼리를 기반으로 쿼리를 작성했습니다. 나는 또한 w/o 문제가있는 필드를 연결했습니다. 그러나 분명히이 두 가지를 하나로 묶는 것이 중요한 문제입니다.

나는 몇 시간 동안이 문제를 조사해 왔지만 목표물에 대한 답변을 찾을 수 없습니다. 대신 사용

+0

이것은 LQ가'익명 형식의 IEnumerable '이되고 intellisense가 설정 한대로 속성을 선택하지 않기 때문입니다. 'Dim LQ = From b DCAppMain.tblPeopleMain 여기서 b.PeopleID = lngPeopleID 그리고 b.CurrentEmployee = True {.FullName = b.LastName & ","& b.FirstName, .PeopleID = b.PeopleID} "로 새로 선택하기 –

+0

완벽한! Mike_OBrien 감사합니다! – DanW52

+0

다행히 도울 수있었습니다! 아래의 답변에 내 의견을 요약 했으므로 문제가 해결되면이 질문에 답변으로 표시하십시오. –

답변

0

: 당신은 LINQ 문에서 개별 속성을 당길 때 괜찮 있지만 IEnumerable(Of AnonymousType)로 끝날 때문에

Dim LQ = From b In DCAppMain.tblPeopleMain Where b.PeopleID = lngPeopleID And 
    b.CurrentEmployee = True Select New With{.FullName = b.LastName & ", " & 
    b.FirstName, .PeopleID = b.PeopleID} 

이것이다 :

Dim LQ = From b In DCAppMain.tblPeopleMain 
    Where b.PeopleID = lngPeopleID And b.CurrentEmployee = True 
    Select FullName = b.LastName & ", " & b.FirstName, b.PeopleID 

당신이 사용할 필요가 Intellisense가 오브젝트 콜렉션에서 추출한 값을 선택하게하려면 오브젝트 이름을 지정해야합니다.

두 번째 LINQ 문을 사용하면 기본적으로 익명 형식의 생성자를 만들 수 있습니다.이 생성자는 LINQ 문에서 반환하는 컬렉션을 구성하는 익명 개체에 FullNamePeopleID 속성도 정의합니다.

+0

또한 매우 명확한 설명에 감사드립니다. – DanW52

관련 문제