2012-04-07 32 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

相關問題