2015-05-09 41 views
1

這裏是我的家控制器:演員到值類型「System.Int32」失敗,因爲物化值爲null

using System; 
using System.Collections.Generic; 
using System.Data.Entity; 
using System.IO; 
using System.Linq; 
using System.Web; 
using System.Web.Mvc; 
using Biblioteca.Models; 
using CrystalDecisions.CrystalReports.Engine; 

namespace Biblioteca.Controllers 
{ 
    public class HomeController : Controller 
    { 
     private BibliotecaDatabase db = new BibliotecaDatabase(); 

     public ActionResult Index() 
     { 
      var totalesviewmodel = new TotalesViewModel(); 
      totalesviewmodel.MontoCopias = db.AlumnosList.Sum(o => o.Copias); 
      totalesviewmodel.MontoImpresiones = db.AlumnosList.Sum(o => o.Impresiones); 
      totalesviewmodel.DineroDeposito = db.AlumnosList.Sum(o => o.Deposito); 
      totalesviewmodel.DineroSap = db.AlumnosList.Sum(o => o.Sap); 
    // *** here is my issue *** 
      totalesviewmodel.MontoCopiasMaestro = db.MaestrosList.Sum(o => o.Copias); 
      totalesviewmodel.MontoImpresionesMaestro = db.MaestrosList.Sum(o => o.Impresiones); 
      return View(totalesviewmodel); 
     } 

     public ActionResult Reports() 
     { 
      List<Alumno> allDatos = new List<Alumno>(); 
      using (BibliotecaEntities dc = new BibliotecaEntities()) 
      { 
       allDatos = dc.Alumnos.ToList(); 
      } 
      return View(allDatos); 
     } 

     public ActionResult ExportReport() 
     { 
      List<Alumno> allDatos = new List<Alumno>(); 
      using (BibliotecaEntities dc = new BibliotecaEntities()) 
      { 
       allDatos = dc.Alumnos.ToList(); 

       ReportDocument rd = new ReportDocument(); 
       rd.Load(Path.Combine(Server.MapPath("~/Reports"), "rpt_datos.rpt")); 
       rd.SetDataSource(allDatos); 

       Response.Buffer = false; 
       Response.ClearContent(); 
       Response.ClearHeaders(); 

       try 
       { 
        Stream stream = rd.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat); 
        stream.Seek(0, SeekOrigin.Begin); 
        return File(stream, "application/pdf", "Reporte.pdf"); 
       } 
       catch (Exception ex) 
       { 
        throw; 
       } 
      } 
     } 

     public ActionResult Contact() 
     { 
      ViewBag.Message = "Your contact page."; 
      return View(); 
     } 
    } 
} 

在此行中:

totalesviewmodel.MontoCopiasMaestro = db.MaestrosList.Sum(o => o.Copias); 

我得到這個錯誤:

The cast to value type 'System.Int32' failed because the materialized value is null

在安裝水晶報告之前,我沒有這個問題。

我在做什麼錯?

+2

是什麼'totalesviewmodel.MontoCopias'的類型?它應該是一個可以爲空的類型,比如'int?'。 – tschmit007

+0

是的,我有maestroslist –

+0

yap我的領域是int? –

回答

0

我解決了它,當你沒有對數據庫的任何登記發生錯誤,那麼你需要插入一個工作:d

相關問題