我有一个列表和两个表。 (这是实际的架构的一个非常简化的版本,但应为问题工作)Linq加入具有左外连接查询的查询未找到引用对象引用
List_A
FPI
表-B
FPI_______NI
2_________1
4_________2
Table_C
NI_______Name
1_________x
2_________y
我的LINQ查询:
(from a in List_A
join b in Table_B on a.FPI equals b.FPI into ab
from b in ab.DefaultIfEmpty()
join c in Table_C on b.FI equals c.FI into bc
from c in bc.DefaultIfEmpty()
select new {
FPI = a.FPI,
Name = c?.Name}).ToList();
这个代码抛出一个异常Object reference not set to an instance of an object.
。 经过大量的试验和实验后,我得出的结论是,在第二次加入时,当我在做b.FI equals c.FI
时,那时Table_B中没有值的条目失败。
查询的预期输出应该是
ABC FPI____NI___Name
1_____null__null
2_____1_____x
3_____null__null
4_____2_____y
我不知道为什么这个错误即将到来,这个问题最好的解决方案是什么?
的可能的复制[什么是一个NullReferenceException,以及如何解决?(http://stackoverflow.com/问题/ 4660142/what-is-a-nullreferenceexception-how-do-i-fix-it) – mybirthname
我也这样做过。我甚至尝试删除可能引发异常的参数。 –