2011-12-18 216 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