2011-12-18 280 views
0

美好的一天,我試圖將我的ASP.NET MVC3應用程序部署到我的網絡服務器。這是我做了什麼:部署MVC3 web應用程序

  1. 上傳的所有項目,以創建一個新的空DB Web服務器
  2. ,跑到SQL腳本來創建表和的PK
  3. 修改web.config文件中的的connectionString屬性指向在線DB
  4. 添加customErrors mode="On"到web.config中

這裏是什麼錯誤,我得到:

對不起,處理您的請求時發生錯誤。

System.InvalidOperationException:演員到價值型 '的Int32' 失敗,因爲物化值爲null。結果 類型的通用參數或查詢必須使用可爲空的類型。

這裏是我的,我請求的頁面代碼:

public ActionResult Index() 
{ 
    ViewBag.Message = "Last game is #" + this.getLastGameId(); 
    return View(); 
} 

public int getLastGameId() 
{ 
    using (HockeyStatsEntities context = new HockeyStatsEntities()) 
    { 
     return context.Dim_Game.Select(g => g.Game_id).Max(); 
    } 
} 

我猜這是因爲這些表是空的,這樣,當我查詢到數據庫中返回null,生成錯誤。

回答

0

Max()如果沒有任何行,則會引發此異常。

您可以通過將game_id轉換爲int?來解決此問題,這將導致Max()返回null
您也可以致電.DefaultIfEmpty()

+0

調用'.DefaultIfEmpty()'什麼? – 2011-12-18 17:19:20

+0

@JFB:在「Select()」查詢中。 – SLaks 2011-12-18 17:20:04