左键与linq连接如何
我有一个linq查询:左键与linq连接如何,linq,left-join,Linq,Left Join,我有一个linq查询: Dim lnqPrüfendeartikel = From r1 In (From row In dtKonf Let ARTNR_HZ_ROHNR = row.Field(Of String)("ARTNR-HZ") Let EMPF_ARTNR = row.Field(Of String)("ARTNR")
Dim lnqPrüfendeartikel = From r1 In (From row In dtKonf
Let ARTNR_HZ_ROHNR = row.Field(Of String)("ARTNR-HZ")
Let EMPF_ARTNR = row.Field(Of String)("ARTNR")
Where ARTNR_HZ_ROHNR <> ""
Select ARTNR_HZ_ROHNR, EMPF_ARTNR
Order By ARTNR_HZ_ROHNR).Distinct.Concat( _
(From row In dtKonf
Let ARTNR_HZ_ROHNR = row.Field(Of String)("ROHNR")
Let EMPF_ARTNR = row.Field(Of String)("ARTNR")
Where ARTNR_HZ_ROHNR <> ""
Select ARTNR_HZ_ROHNR, EMPF_ARTNR
Order By ARTNR_HZ_ROHNR).Distinct)
Join r2 In
(From row In dtErlöse
Let ARTNR = row.Field(Of String)("ARTNR")
Let BWA = row.Field(Of String)("BWA")
Let MENGE = row.Field(Of Double)("MENGE")
Let M_EINHEIT = row.Field(Of String)("ME")
Let WERT = row.Field(Of Double)("WERT")
Where BWA = "201"
Select ARTNR, MENGE, M_EINHEIT, WERT) On r1.EMPF_ARTNR Equals r2.ARTNR
Select r1.ARTNR_HZ_ROHNR, r1.EMPF_ARTNR, r2.MENGE, r2.M_EINHEIT, r2.WERT
大概是这样的:
into JoinedQuery from r2 in JoinedQuery.DefaultIfEmpty() select new {r1.ARTNR_HZ_ROHNR, r1.EMPF_ARTNR, r2.MENGE, r2.M_EINHEIT, r2.WERT}
但vs不承认进入
这是什么问题?您找到的解决方案是针对C。对于VB.NET,您需要使用:
Group Join r2 In (...)
On r1.EMPF_ARTNR Equals r2.ARTNR Into JoinedQuery
From r2 In JoinedQuery.DefaultIfEmpty()
...
我得到的错误是:“Dim lnqProdsummenmitpreisen=来自lnqProdsummen组中的行,在LNqSolpreise中加入第2行。ARTNR_HZ_ROHNR等于第2行。这样就合并到JoinedQuery()来自JoinedQuery中的第2行。在此上下文中无法访问方法“JoinedQuery”的DefaultIfEmpty定义。我做错了什么?对不起,代码,我不知道,我是怎么写这个反勾的。@derstauner:尝试将括号从
中删除到JoinedQuery()
-它应该是到JoinedQuery
中,没有括号。但是vb会在之后自动将其放入JoinedQuery@derstauner:听起来像是IDE中的一个bug;它后面绝对不应该有括号。如果无法取出括号,请尝试用其他名称替换JoinedQuery
。
Group Join r2 In (...)
On r1.EMPF_ARTNR Equals r2.ARTNR Into JoinedQuery
From r2 In JoinedQuery.DefaultIfEmpty()
...