2011-12-18 24 views
0

こんにちは、私は自分のWebサーバーにASP.NET MVC3アプリケーションをデプロイしようとしています。 、MVC3 Webアプリケーションのデプロイ

  1. を新しい空のDBを作成したWebサーバー
  2. にすべてのプロジェクトをアップロードweb.configファイルのたconnectionStringを修正テーブルとのPK
  3. を作成するために、SQLスクリプトを実行しました:これは私がやったものですオンラインDB
  4. を指すように属性がここ

をweb.configファイルするcustomErrors mode="On"を追加しました私は何を得るのエラーです:

申し訳ありません、リクエストの処理中にエラーが発生しました。

のSystem.InvalidOperationException:値の型へのキャスト 'のInt32' マテリアライズド値がnullであるために失敗しました。結果 タイプの汎用パラメーターまたは照会は、NULL可能タイプを使用する必要があります。ここで

私は要求していたページの私のコードです:私は、DBへの私のクエリが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(); 
    } 
} 

を。

答えて

0

Max()は、行がない場合にこの例外をスローします。

game_idint?にキャストして修正すると、Max()にはnullが返されます。
.DefaultIfEmpty()に電話することもできます。

+0

何に対して '.DefaultIfEmpty()'を呼びますか? –

+0

@JFB: 'Select()'クエリで。 – SLaks

関連する問題