首页 > 解决方案 > Linq Join 将所有字段从一侧保留,无需显式列表

问题描述

我的代码需要两个数据库集的多个内部连接。一组非常大(约 20 列)并且所有字段都是相关的。有没有办法输出所有字段而不明确列出它们?

我的代码的简化版本(db是我的上下文):

var x = db.BigFact
        .join(db.Lookup1, l => l.Lookup1Id, r => r.Lookup1Id
             (l, r) => new {l.Col1, l.Col2 … l.Col20, r.OneName}
         )

...左侧的所有字段的代表列表。重复编写它们很乏味,特别是考虑到有代表“BigFact”的强类型类。

我正在寻找类似 SQL 的语法:

SELECT l.*, r.OneName
FROM BigFact as l
JOIN Lookup1 as r
ON   l.Lookup1Id = r.Lookup1Id

标签: c#linqlambda

解决方案


你可以这样做:

var x = db.BigFact
    .join(db.Lookup1, l => l.Lookup1Id, r => r.Lookup1Id
         (l, r) => new { Left = l, r.OneName}
     )

推荐阅读