0

我一直在尝试在 LINQ to Entities 中执行 Left Join 类型的表达式,但是 DefaultIfEmpty 方法的工作方式与我的预期不同 - 它为每个在 Readings 表中不匹配的 CounterNo 返回一个空行。

var leftjoin = from counter in database.Counters
               join reading in database.Readings
               on counter.CounterNo equals reading.CounterNo into gj
               from x in gj.DefaultIfEmpty()
               select x;

这样,我不知道 Counters 表中的哪些行与 Readings 表没有对应的行。

我该如何进行这项工作?

4

1 回答 1

0

听起来您根本不想在 中添加,from x in gj.DefaultIfEmpty()而是希望将左表中的每个项目与右表中的一项目配对(该组可能有零个元素,这就是您何时知道没有匹配的项目),这正是您删除该行时的行为。

于 2014-05-08T18:45:51.920 回答