2017-09-05 149 views
1

我正在使用ASP.NET實體框架,並且正在嘗試創建一個SqlQuery,但我得到此錯誤:SQL和ASP.NET指定的從物化「System.Int64」類型轉換爲「System.Int32」類型無效

The specified cast from a materialized 'System.Int64' type to the 'System.Int32' type is not valid.

我的問題是我不知道哪列給我麻煩,以及如何解決它。這是我的代碼。我不認爲它是我的演員,因爲那些是絃樂。

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; } 
} 
+0

什麼是模型類喲存儲到?請添加它。 'id'或'slotOrder'都是長整型,而不是整數。可能是'id' –

+0

對我的問題添加了類。 – user979331

回答

2

你上面的查詢返回Int64long),你是把它作爲一個Int32int)。找出它的哪些數字字段並調整模型。

我的猜測是idlong,因爲它是ROW_NUMBER()

0

ROW_NUMBER()返回bigintMSDN),它在C#中轉換爲Int64long

相關問題