【发布时间】:2020-12-04 17:00:06
【问题描述】:
我有一个这样的分组查询:
from order in orders group by
new { CustomerID = order.CustomerID,
Year = order.OrderDate.Year,
Month = order.OrderDate.Month } into g
select new {
Total = g.Sum(x => x.Quantity * x.UnitPrice }
我收到一个错误:
算术溢出
我查看了生成的 SQL,它试图将 Quantity 从 int 转换为十进制,因为 UnitPrice 是十进制。在 SQL 中,如果我不进行强制转换,查询就可以正常工作。
如何强制 EF 不将 Quantity 强制转换为十进制,以免引发异常?
【问题讨论】:
-
在 C# 中将 UnitPrice 转换为 double 怎么样? (接受舍入误差)。
-
溢出的数量和价格是多少?我怀疑还有其他问题,比如值为 null。
-
它工作了@user2864740,我一直在摆弄这个问题,在c#中将其转换为double,使sql生成最终将数量和佣金都转换为“浮动”
-
@Ahmed 如果它有效并且您找到了解决方案,请在此处发布作为答案。这对其他人会有所帮助。
-
我感谢@user2864740 给出了答案,但由于他将其作为评论,我无法将其标记为已回答,因此我将发布答案
标签: c# sql entity-framework linq entity-framework-core