我正在通过linq查询SQL Azure数据库。添加新公司后,该站点会重定向用户以显示刚刚添加的公司。它还在查询字符串中提供ID。
使用的陈述是:
var Result = (from d in company.Companies
join c in company.originalSources on d.originalSource equals c.ID
join f in company.revenues on d.turnover equals f.ID
join g in company.recordTypes on d.type equals g.ID
where d.ID == Convert.ToInt32(Request.QueryString["ID"])
select new { d, c, f, g }).First();
然而,它返回的序列不包含任何元素。我使用断点来确保ID查询字符串具有正确的数字并且记录存在,所以我无法弄清楚它为什么不返回记录。
答案 0 :(得分:1)
join运算符执行内连接。如果originalSources / revenue / recordTypes为null,则不会返回任何结果。使用'into'运算符使用左外连接,如下所述:http://msdn.microsoft.com/en-us/library/bb397895.aspx