如何将联接3表从linq表达式更改为lambda

本文关键字:表达式 lambda linq 表从 | 更新日期: 2023-09-27 18:26:23

我使用linq查询联接了3个表,我想将其更改为使用lambda?

var listOFValue =  (from form in db.Forms
                    join control in db.Controls on form.RecordId equals control.FormId
                    join values in db.Values on control.RecordId equals values.ControlId
                    where form.RecordId == formId && control.RecordId == fieldId
                    orderby values.Name ascending
                    select values).ToList();
return listOFValue;

如何将联接3表从linq表达式更改为lambda

像这样:

var listOFValue = (db.Forms.Join(db.Controls, form => form.RecordId, control => control.FormId,
                (form, control) => new {form, control})
                .Join(db.Values, @t => control.RecordId, values => values.ControlId, (@t, values) => new {@t, values})
                .Where(@t => form.RecordId == formId && control.RecordId == fieldId)
                .OrderBy(@t => values.Name)
                .Select(@t => values)).ToList();