我有2个名为学生和条目的通用列表,它们的关系为1到0..1。学生1:0..1参赛作品
如果存在,我想从条目中获取学生姓名,ID和英语,数学详细信息列表。
我的LINQ查询如下,我在 se.English 时得到了空引用错误。你能帮忙吗?感谢。
var query = from s in students
join t in entries
on s.StudentDetailID equals t.StudentDetailID into StudentEntries
from se in StudentEntries.DefaultIfEmpty()
select new { s.StudentDetailID, s.LastName, s.FirstName,
se.English};
答案 0 :(得分:1)
正如你所说你有一个1-0..1的关系所以se.english可能是null(因为你使用了一个左外连接),你应该在你的查询中处理它,我认为它会是String并且如果它为null则放入“”,您可以根据需要处理它。
var query = from s in students
join t in entries
on s.StudentDetailID equals t.StudentDetailID into StudentEntries
from se in StudentEntries.DefaultIfEmpty()
select new { s.StudentDetailID, s.LastName, s.FirstName,
English = se.English?? ""};
答案 1 :(得分:0)
se
可能为null,因为您已将其分配为StudentEntries.DefaultIfEmpty()
。并且类的默认值为null。所以你不能在没有测试它之前调用se.English
:
var query = from s in students
join t in entries
on s.StudentDetailID equals t.StudentDetailID into StudentEntries
from se in StudentEntries.DefaultIfEmpty()
select new { s.StudentDetailID, s.LastName, s.FirstName,
se == null ? null : se.English};