猿问

如何在LINQ中对单个联接中的多个字段进行联接

如何在LINQ中对单个联接中的多个字段进行联接

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

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

我还没有找到一个合适的解决方案(我可以在WHERE子句中添加额外的约束,但这远远不是一个合适的解决方案,或者使用这,这个解决方案,但这假定为等量连接)。

在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子句中添加日期范围。

一如既往地感谢大家的建议和意见。

HUX布斯
浏览 362回答 2
2回答

隔江千里

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

慕容3067478

var result = from x in entity1              join y in entity2              on new { X1= x.field1, X2= x.field2 } equals new { X1=y.field1, X2= y.field2 }如果列名在两个实体中不同,则需要这样做。
随时随地看视频慕课网APP

相关分类

MySQL
我要回答