2012-04-07 82 views
0

我正在通过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

我会查看数据源,因为必须有一些条件(连接或id)导致没有结果。尝试在当时删除一个条件以隔离问题 – TGH 2012-04-07 19:09:58

回答

1

连接运算符执行内部连接。如果originalSources/revenue/recordTypes为空,它将不会返回任何结果。使用'into'运算符来执行左外部连接,如下所示:http://msdn.microsoft.com/en-us/library/bb397895.aspx

+0

请记住在有帮助的情况下将其标记为答案。 – hofnarwillie 2012-04-07 19:41:19

+0

完美,谢谢。上一页未填充其中一个字段。 – 2012-04-07 20:17:02

相关问题