我有2个表,我想使用Lambda语句(不是Linq而是Lambda)加入它们。
这是我需要的查询:
SELECT
c.*
FROM
board as b
LEFT JOIN category as c ON
b.cid = c.cid
WHERE
b.bid = 1
我该怎么做?
如果 board 是数据集/变量,类别是另一个数据集/变量,那么我想要一些像 board.Join(category).Where(b => b.bid == c.cid)(我知道这是错的,但只是让你知道我在寻找什么,非常感谢你的帮助
答案 0 :(得分:5)
如果您的意思是方法语法而不是linq的查询语法,那么您可以
var results = context.boards.Where(b => b.bid == 1)
.DefaultIfEmpty()
.Join(context.categories,
b => b.bid,
c => c.cid,
(b, c) => c);
答案 1 :(得分:2)
您可以使用组连接,如:
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 });