2012-08-02 53 views
0

我在添加「其中x in(select ...)」語句到我的linq查詢時遇到問題。 查詢代表Master [MEDIEN]/Detail [EXEMPLARE]場景。Linq vb.net - 其中X IN(SELECT ...)

丟失的WHERE語句應該代表的SQL語句:

WHERE e.EXEMPLARSTATUS IN(SELECT EXEMPLARSTATUS FROM ANYTABLE)

Dim eMedien = (_ 
    From p In db.MEDIEN _ 
    Where p.MEDIENNR = "1235155" 
    Select New With {.HST = p.HST, 
     .ANYNAME = (_ 
     From e In p.EXEMPLAR _ 
     **** WHERE QUERY **** 
     Select New With {.ZWEIGSTELLE = e.ZWEIGSTELLE, .EXEMPLARSTATUS = e.EXEMPLARSTATUS}) 
        }) 

任何幫助apreciated!

回答

1

WHERE e.EXEMPLARSTATUS IN(SELECT EXEMPLARSTATUS FROM ANYTABLE)

查詢的這部分應該寫成

where (from EXEMPLARSTATUS in ANYTABLE select EXEMPLARSTATUS).Contains(e.EXEMPLARSTATUS) 
+0

感謝您的答覆,但你的版本帶來了錯誤的e.EXEMPLARSTATUS:__「String」不能轉換爲「Data.CMS_SETTINGS_EXEMPLARSTATUS」__? – stare 2012-08-02 14:18:25

+0

這意味着你的'WHERE .. IN'查詢是錯誤的。假設你在'Data.CMS_SETTINGS_EXEMPLARSTATUS'類中擁有屬性'NAME',查詢將看起來像'where(從EXEMPLARSTATUS中的ANYTABLE中選擇EXEMPLARSTATUS.NAME).Contains(e.EXEMPLARSTATUS)'。相應地改變。 – 2012-08-02 14:31:54

+0

這工作(與SQL服務器),但我需要運行linq查詢對甲骨文和我面臨另一個錯誤,似乎不能解決我:http://connect.microsoft.com/VisualStudio/feedback/details/739458/ linq-query-whene-with-oracle-11-g2-getting-ora-00907-missing-right-brackhesis – stare 2012-08-02 17:31:31