Linq Join()与复合键

时间:2013-02-22 21:30:26

标签: c# linq

我正在尝试用两个表格提出请求

表格页面: Id,LangId(主键) PageTypeId,PageTypeLangId(外键)

表PageType: Id,LangId(主键)

那怎么办?在这里,我想念只是添加PageTypeLangId

    return context.Pages
            .Join(context.PageTypes, p => p.PageTypeId, pT => pT.Id,(p, pT) => new { p, pT })

我想:

 select * from Page inner join PageType on Page.PageTypeId=PageType.Id and     Page.PageTypeLangId=PageType.LangId

感谢您的帮助!

1 个答案:

答案 0 :(得分:10)

以下内容应该有效:

return context.Pages
              .Where(x => x.PageTypeLangId.HasValue)
              .Join(context.PageTypes,
                    p => new { Id = p.PageTypeId,
                               LangId = p.PageTypeLangId.Value },
                    pT => new { pT.Id, pT.LangId },
                    (p, pT) => new { p, pT });