2016-10-28 74 views
0

我對linq不太好,似乎對我有點困惑,但我一直在通過它。我有以下查詢,我似乎無法工作。LINQ加入可空列

我得到的錯誤:

The value for column 'empl_cctr_id' in table 'temsempl' is dbnull.

其他加盟也可以得到同樣的錯誤,以及,但與相關的表。請幫忙。

Dim query = (From empl In EMS_DS.TEMSEMPL 
      Join cctr In EMS_DS.TEMSCCTR On empl.empl_cctr_id Equals cctr.cctr_id 
      Join ppcd In EMS_DS.TEMSPPCD On empl.empl_ppcd_id Equals ppcd.ppcd_id 
      Where empl.empl_userid.Equals(text.ToString.ToUpper) 
      Select empl.empl_sep_dt, cctr.cctr_cd, ppcd.ppcd_desc).ToList 
+0

看一看到[這裏](http://stackoverflow.com/questions/5696888/linq-join-tables-on-nullable-columns)。它可能有幫助。 – Bugs

+0

是的,我看到並嘗試了這些建議,但那並不奏效。我的問題是在加入我認爲 – dk96m

+0

是的,它看起來像。該鏈接中被接受的答案有兩個例子。你有沒有嘗試第二個? – Bugs

回答

0

Dim query = (From empl In EMS_DS.TEMSEMPL Join cctr In EMS_DS.TEMSCCTR On empl.empl_cctr_id Equals cctr.cctr_id into temp from cctr in temp.DefaultIfEmpty() Join ppcd In EMS_DS.TEMSPPCD On empl.empl_ppcd_id Equals ppcd.ppcd_id Where empl.empl_userid.Equals(text.ToString.ToUpper) Select empl.empl_sep_dt, cctr.cctr_cd, ppcd.ppcd_desc).ToList

+2

雖然這段代碼片段可能回答OP的問題,但如果你解釋爲什麼它應該解決問題,那麼對於未來的訪問者來說,答案會更有用。 –