我正在使用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; }
}
答案 0 :(得分:4)
您的上述查询会返回Int64
(long
),您将其存储为Int32
(int
)。找出它是哪个数字字段并调整模型。
我的猜测是id
为long
,因为它是ROW_NUMBER()
。
答案 1 :(得分:0)
bigint
返回Int64
(MSDN),在C#中翻译为long
或short
。