1

要求

  1. 我需要加入 Table1 和 Table2
  2. 两个表之间的键是 ID,它是 System.Guid 类型并且是不可空值类型
  3. 如果 Table2.ID 为空,我需要从 Table1 中获取空记录。

我写的LINQ语法如下。

from records in DBContext.Table1
join history in DBContext.Table2 into recordhistory
from records in recordhistory.DefaultIfEmpty()
select (n => n);

我得到的错误是“不能将空值分配给 System.Guid 类型的成员,这是一个不可为空的值类型。”

有人可以建议我吗?非常感谢。

4

2 回答 2

0

假设您有一个 ID 属性,以下应该作为内部联接:

var result = DBContext.Table1
              .Join(DBContext.Table2, t1 => t1.ID, t2 => t2.ID, (t1, t2) => t1);
于 2012-09-17T01:10:42.147 回答
0

我想,您提供的查询应该给出一个错误,说on应该指定该语句。所以,我想它应该看起来像这样:

from records in DBContext.Table1
join history in DBContext.Table2 on records.ID equals history.ID into temp
from recordhistory in temp.DefaultIfEmpty()
select new { Record = records, History = recordhistory };
于 2012-09-17T02:52:24.510 回答