2012-08-02 39 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