2014-02-26 26 views
0

我需要使用Linq to SQL查詢爲組合框創建數據源。根據查詢編寫查詢 - 不使用並置

即cboFindPerson.DataSource = LQPersonList (其中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,智能說,沒有欄目。

我在沒有問題之前根據查詢編寫了查詢。我也連接字段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

而不是使用:

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

你需要使用:

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} 

這是因爲當你拉各個屬性了LINQ聲明你最終的IEnumerable(Of AnonymousType)這是很好的,但如果你想讓intellisense提取你從對象集合中提取的值,那麼你需要爲它們分配名稱。

因此,使用第二條LINQ語句基本上爲匿名類型創建了一個構造函數,該構造函數還定義了構成LINQ語句返回的集合的匿名對象的屬性FullNamePeopleID

+0

另外 - 感謝您的非常明確的解釋! – DanW52