转换为值类型"Int32"失败

Hos*_*Ali 3 c# linq asp.net-mvc lambda

我有以下代码.我收到错误:

转换为值类型'System.Int32'失败,因为实现的值为null.结果类型的泛型参数或查询必须使用可空类型.

var productItem =   from sales 
                      in db.Sales_inv_details
                  select new { 
                           sales.Sales_Invoices.Customer.Cust_Id, 
                           sales.Sales_Invoices.Customer.Customer_Name,         
                           sales.Sales_Invoices.Employe.Emp_Name, 
                           sales.Sales_Invoices.Employe.Emp_code,
                           sales.Sales_Invoices.Date_invoice, 
                           sales.Item.Item_ID, 
                           sales.Qty, 
                           sales.Qty_Price, 
                           sales.Item.Item_Name, 
                           sales.Item.Item_Code, 
                           Unit_Measure = sales.Item.TBL_Unit_Measure.Code,
                           sales.Sales_Invoices.Descrption, 
                           sales.disc };

productItem = productItem
  .Where(x => (x.Date_invoice >= model.Fromdate & x.Date_invoice <= (model.Todate)));

productItem = productItem
  .Where(x => (x.Emp_code == model.Emp_code));
Run Code Online (Sandbox Code Playgroud)

Mar*_*ell 5

听起来您的模型将其中一个属性定义为非可空,但数据库将相应的列定为可为空,并且其中包含空值.当生成的阅读器尝试填充模型时,BOOM.不幸的是,我们无法告诉您哪个属性,它甚至不需要是该代码中提到的FrobNumber属性之一,因为它可能是任何Sales_inv_details代表的属性.

您需要非常仔细地检查您的模型.从任何Sales_inv_details代表的属性/列开始.找到不匹配项后:将其标记为可为空,然后重试.