从物化的"System.Int32"类型到"System.Double"类型的指定强制转换无效

Anu*_*nup 42 c# linq asp.net-mvc

执行以下查询时,我收到错误:

从物化的"System.Int32"类型到"System.Double"类型的指定强制转换无效.

var data = ctx.tblTO
                   .Where(m => m.Id == Id)
                   .GroupBy(m => m.EmployeeId)
                   .Select(m => new
                   {
                       workDay = m.Sum(k => k.WorkDay),
                       onDutyDay = m.Sum(k => k.OnDutyDay),
                       holiDay = m.Sum(k => k.Holiday)
                   })
                   .FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)

的数据类型WorkDay,OnDutyDay并且Holidaydouble.这里没有Int32,所以为什么我会收到这个错误?

我该如何解决这个错误?

public class TO
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }           
    public int EmployeeId { get; set; }
    public double WorkDay { get; set; }
    public double OnDutyDay { get; set; }
    public double Holiday { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

yoh*_*nes 54

我认为数据库表中列的数据类型是Int32您的数据模型double.您需要将数据模型的数据类型更改为int.通过materialized这意味着类型它得到,当它运行在数据库上查询.

  • 这是正确的。我将数据库 `datatype` 从 `int` 更改为 `float`。现在工作正常。 (2认同)
  • @Anup,我有这个问题.但在我的数据库中,我有浮动,在我的模型中,我也有浮动.我该怎么做才能解决这个问题?这是错误消息:`System.InvalidOperationException:'从物化的'System.Single'类型到'System.Double'类型的指定强制转换是无效的. (2认同)