c# - 如何在 LINQ 中对单个连接中的多个字段进行连接

标签 c# linq join

我需要执行一个 LINQ2DataSet 查询,该查询对多个字段进行连接(如

var result = from x in entity
join y in entity2 
       on x.field1 = y.field1 
and 
          x.field2 = y.field2

我还没有找到合适的解决方案(我可以将额外的约束添加到 where 子句,但这远非合适的解决方案,或者使用 this 解决方案,但假设是等值连接)。

在 LINQ 中是否可以在单个连接中连接多个字段?

编辑

var result = from x in entity
             join y in entity2
             on new { x.field1, x.field2 } equals new { y.field1, y.field2 }

是我引用的解决方案,假设上面有一个等值连接。

进一步编辑

为了回应对我的原始示例是等值连接的批评,我承认,我当前的要求是等值连接,并且我已经采用了上面提到的解决方案。

但是,我正在尝试了解我拥有/应该使用 LINQ 的可能性和最佳实践。我很快将需要使用表 ID 执行日期范围查询连接,并且只是先发制人,看来我必须在 where 子句中添加日期范围。

一如既往地感谢您提出的所有建议和意见

最佳答案

var result = from x in entity
   join y in entity2 on new { x.field1, x.field2 } equals new { y.field1, y.field2 }

关于c# - 如何在 LINQ 中对单个连接中的多个字段进行连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/373541/

相关文章:

c# - 线程静态,ASP.NET和异步处理程序

mysql - LEFT JOIN 与表两次以获得单独的记录

sql - 在 SQL 中连接多个表

c# - TwilioRequestValidator 中的 transient System.Security.Cryptography.CryptographicException

c# - WPF 中的 MVVM - 如何提醒 ViewModel 模型中的变化......或者我应该吗?

c# - 如果我之后直接使用 `Response.Flush()` ,那么 `Response.End()` 有意义吗?

c# - Linq中的高级过滤

linq - IObservable 是否会添加类似 IQueryable 的功能? (.NET 接收)

linq - 通过 WCF 服务公开 IQueryable

mysql - select 中分组依据的最后一个条目,将 null 替换为最后一个已知值