2012-12-30 61 views
0

我正在使用教程http://msdn.microsoft.com/en-us/data/jj591506發現自己的實體框架。實體框架沒有按預期運行

using (var db = new DatabaseEntities()) 
{ 
      // Section 1 
      var section = new Section 
      { 
       SectionID = 1, 
       SectionLetter = "d" 
      }; 
      db.Sections.Add(section); 
      db.SaveChanges(); 

      // Section 2 

      var query = from b in db.Sections 
         orderby b.SectionLetter 
         select b; 

      foreach (var item in query) 
      { 
       this.Title = item.SectionLetter; 
      } 
} 

當我將上述代碼的第1節和第2節一起使用時,它們工作得很好。但是,當我運行第2部分時,標題不會改變,這意味着它甚至不會返回單個項目,因此不會進入foreach循環。我看不出爲什麼它不會進入循環。

我意識到這個問題可能有一個明顯的答案,但我認爲我應該問問stackoverflow而不是問同事,以便其他人可以找到答案。

我懷疑這個問題可能有線索:System.Data.Entity not working as expected for MVC Entity Framework。不幸的是我似乎無法解決這個問題。

+0

[你有什麼嘗試?](http://whathaveyoutried.com) – GameScripting

+0

這似乎太簡單了,我猜你甚至沒有試圖調試你的代碼... – GameScripting

+0

如果你已經完成調試,什麼是您離開使用區塊後的標題屬性?是emty嗎?內容不只是呈現在用戶界面上?以某種方式阻止用戶界面?有很多的可能性是可以去做的。您發佈的代碼似乎沒問題,所以*您必須提供有關特定問題的更多信息。 – GameScripting

回答

1

看起來行var db = new DatabaseEntities()正在連接到一個沒有任何行的數據庫。檢查dbConnection屬性以確保它位於正確的服務器/實例/文件中。

如果您在query.ToArray()上執行「快速查看」,您應該能夠看到表格的內容。

1

你確定,如果你只運行第2節:

var query = from b in db.Sections 
      orderby b.SectionLetter 
      select b; 

query變量實際上得到的結果嗎?你有沒有把它調試到你看到什麼是內部查詢?

var query = (from b in db.Sections 
       orderby b.SectionLetter 
       select b).ToList(); 

試試這個,並把斷點之後它。然後查看查詢變量中有多少個元素。如果有0,它的邏輯是你的foreach不會做很多。

您是否檢查過實際的數據庫以查看是否有任何記錄?