C#lambda表达式问题-如何使用以下SQL中的lambda语句连接两个表

本文关键字:连接 语句 两个 lambda 中的 问题 表达式 何使用 SQL C#lambda | 更新日期: 2023-09-27 17:58:34

我有两个表,我想使用Lambda语句(不是Linq,而是Lambda)来连接它们。

这是我需要的查询:

SELECT
    c.*
FROM
    board as b
LEFT JOIN category as c ON
    b.cid = c.cid
WHERE
    b.bid = 1

我该怎么做?

假设board是一个数据集/变量,而category则是另一个数据集中/变量,那么我想要一些类似板加入(类别)。Where(b=>b.bid==c.cid)(我知道这是错误的,但只是为了让你知道我在寻找什么,非常感谢你的帮助

C#lambda表达式问题-如何使用以下SQL中的lambda语句连接两个表

如果你指的是linq的方法语法而不是查询语法,那么你可以进行

var results = context.boards.Where(b => b.bid == 1)
                            .DefaultIfEmpty()
                            .Join(context.categories, 
                                  b => b.bid,
                                  c => c.cid,
                                  (b, c) => c);

您可以使用类似的组联接

var qry = boards.GroupJoin(
    categories,
    b => b.CategoryID,
    c => c.CategoryID,
    (x, y) => new { Board = x, Categories = y })
    .SelectMany(
    x => x.Categories.DefaultIfEmpty(),
    (x, y) => new { Board = x.Board, Category = y });