首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有多个条件的组联接,其中一个条件具有常量

具有多个条件的组联接,其中一个条件具有常量
EN

Stack Overflow用户
提问于 2010-01-29 21:35:05
回答 2查看 2.6K关注 0票数 3

下面是我的(VB) LINQ的一段代码:

代码语言:javascript
复制
From event_evn In xmlEvents.Descendants("event_evn") _
Join genre_gnr In xmlGenre.Descendants("genre_gnr") On event_evn.Element("evn_gnr_id") Equals genre_gnr.Element("gnr_id").Value _
Group Join eventdata_eda In xmlEventData.Descendants("eventdata_eda") On _
eventdata_eda.Element("eda_evn_id").Value Equals event_evn.Element("evn_id").Value And _
eventdata_eda.Element("eda_dty_id").Value Equals "15" _
Into edaList = Group _
From eventdata_eda In edaList.DefaultIfEmpty() _
Where _

我在最后一行得到一个错误信息:“你必须在'Equals‘运算符的两边至少引用一个范围变量”,我该如何使用多个条件进行组连接,其中一个条件是与常量进行比较?

我找到了两个地方的答案:

http://forums.asp.net/p/1209451/2127071.aspx#2127071

LINQ to SQL - Left Outer Join with multiple join conditions

然而,它既是在C#中,我需要它在VB中。

提前感谢:)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-01-30 01:30:22

我最近遇到了一个类似的问题,我可以通过在LINQ查询中声明一个匿名类型的变量来保存我想要连接的所有值,并在连接条件中使用这个新的临时变量,以便您的代码片段如下所示:

代码语言:javascript
复制
From event_evn In xmlEvents.Descendants("event_evn") _
Let JoinVals = New With { .EvnId = event_evn.Element("evn_id").Value, _
                          .Fifteen = "15" } _
Join genre_gnr In xmlGenre.Descendants("genre_gnr") On event_evn.Element("evn_gnr_id")     Equals genre_gnr.Element("gnr_id").Value _
Group Join eventdata_eda In xmlEventData.Descendants("eventdata_eda") On _
eventdata_eda.Element("eda_evn_id").Value Equals JoinVals.EvnId And _
eventdata_eda.Element("eda_dty_id").Value Equals JoinVals.Fifteen _
Into edaList = Group _
From eventdata_eda In edaList.DefaultIfEmpty() _
Where _
票数 4
EN

Stack Overflow用户

发布于 2015-08-17 19:56:05

为了对常量值进行左连接,我添加了以下内容:

代码语言:javascript
复制
...
Group Join j In <YourJoinTable> On <YourEqualsClauses> Into Group
From g In Group.Where(Function(f) f.ColumnName = "<constantValue>").DefaultIfEmpty()

使用SQL检查并生成预期的LinqPad。

代码语言:javascript
复制
...
LEFT OUTER JOIN <YourJoinTable> ON <YourEqualsClauses>
AND [<YourJoinTable>].[ColumnName] = '<constantValue>'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2162217

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档