【问题标题】:Linq Multi Join with Where clauseLinq Multi Join with Where 子句
【发布时间】:2014-11-14 21:43:06
【问题描述】:

我正在尝试使用带 Where 子句的多重联接。

SQL 代码具有以下作用

SELECT... 
FROM clients as c
JOIN members as m ON
(
    c.Id = m.clientId AND 
    c.groupId = m.groupId AND 
    c.created < m.created
)

LINQ 代码 - 我不知道在哪里取悦“Where”子句

from c in clients
join m in members ON
{ClientId = c.Id,GroupId = c.groupId} equals
{ClientId = m.clientId, GroupId = m.groupId}

** (c.created

我应该把 c.created Where 子句放在哪里

【问题讨论】:

  • 你的意思是你不知道在哪里放置“Where”子句?

标签: sql linq where-clause


【解决方案1】:

在 LINQ 中不能有非equals 连接条件。您可以使用额外的WHERE 子句来获得等效结果:

from c in clients
join m in members on
new {ClientId = c.Id,GroupId = c.groupId}
equals new {ClientId = m.clientId, GroupId = m.groupId}
where c.created < m.created

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-16
    • 2021-02-15
    • 2017-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多