Linq:连接两个共享一个列名的表(使用不同的数据)

本文关键字:数据 连接 两个 共享 一个 Linq | 更新日期: 2023-09-27 18:08:29

在stackoverflow上有几个关于这个主题的问题,但是我找不到我问题的答案。

我已经尝试将表COSTS与表CREDITS连接起来。我的问题是,我想在连接后访问"标签"属性(存在于两个表上)。这显然是不可能的了,因为它们在连接期间被"合并"了。我必须声明,尽管属性'label'共享相同的名称,但它们不包含相同的信息。

为了解决这个问题,我尝试使用'let'关键字,但不幸的是,智能感知不识别我的'costLabel'变量(最后一行)。

var query = from cost in COSTS
                    let costLabel = cost.Label
                    join credit in CREDITS
                    on cost.IdCredit equals credit.IdCredit into joined
                    from j in joined.DefaultIfEmpty()
                    select new SearchCredit
                    {
                        CreditLabel = j.Label,
                        CostLabel = costLabel
                    };

Linq:连接两个共享一个列名的表(使用不同的数据)

使用

var query = from cost in COSTS
                join credit in CREDITS
                on cost.IdCredit equals credit.IdCredit into joined
                from j in joined.DefaultIfEmpty()
                select new SearchCredit
                {
                    CreditLabel = j.Label,
                    CostLabel = cost.Label
                };