小编Siv*_*asu的帖子

LINQ LEFT JOIN 不适用于 NULL 值

我有两个表StudentMarks

学生表具有以下字段: StudentID, Name, MarkID(Nullable)标记表具有以下字段: MarkID,Mark

学生桌

StudentID   Name    MarkID

1           Mark    1 

2           Mike    NULL

3           John    NULL

4           Paul    2
Run Code Online (Sandbox Code Playgroud)

标记表

MarkID  Mark

1       80

2       100
Run Code Online (Sandbox Code Playgroud)

如果我使用左连接,那么我只会得到markpaul记录。我想要左表中的所有记录(Student)我的查询是:

   var query = (from s in Students  
               join m in Marks on s.MarkID equals m.MarkID 
               into mar from subMark in mar.DefaultIfEmpty()
               where(m.Mark > 80)
               Select s.Name)
               .ToList() 
Run Code Online (Sandbox Code Playgroud)

注意:这只是一个例子。使用左连接连接两个表并在第二个表上应用 where 条件时,如果第一个表中连接的列值为空,则不会从第一个表中获取记录。

c# linq

5
推荐指数
2
解决办法
2万
查看次数

标签 统计

c# ×1

linq ×1