SQL和ASP.NET来自物化的System.Int64'的指定强制转换。输入' System.Int32'类型无效

时间:2017-09-05 17:44:12

标签: c# sql asp.net .net entity-framework

我正在使用ASP.NET实体框架,我正在尝试创建一个SqlQuery,但是我收到了这个错误:

  

来自物化系统.Int64'的指定演员表。输入到   ' System.Int32'类型无效。

我的问题是我不知道哪个专栏给我带来麻烦以及如何修复它。这是我的代码。我不认为我正在做的演员因为那些是弦乐。

return View(db.Data.SqlQuery("SELECT ROW_NUMBER() OVER(ORDER BY slotOrder ASC) AS id, 
                              concat(a.dateSlot, ' - ', a.timeSlot) as dateSlot, 
                              concat(a.dateSlot, '-', a.timeSlot) as timeSlot, 
                              COUNT(*) as slotOrder 
                              FROM Appointments a 
                              LEFT OUTER JOIN dateTimeSlots b 
                              ON a.dateSlot = b.dateSlot AND a.timeSlot = b.timeSlot 
                              GROUP BY a.dateSlot, a.timeSlot, b.slotOrder 
                              ORDER BY b.slotOrder").ToList());

这是我的班级:

public class dateTimeSlots
{
    public int id { get; set; }
    [DisplayName("Date")]
    public string dateSlot { get; set; }
    [DisplayName("Time")]
    public string timeSlot { get; set; }
    [DisplayName("Order")]
    public int slotOrder { get; set; }
}

2 个答案:

答案 0 :(得分:4)

您的上述查询会返回Int64long),您将其存储为Int32int)。找出它是哪个数字字段并调整模型。

我的猜测是idlong,因为它是ROW_NUMBER()

答案 1 :(得分:0)

bigint返回Int64MSDN),在C#中翻译为longshort