我正在尝试计算两列之差的总和:
var result = model.TableExample
.Where(condition here)
.Select(s => s.Column1 - s.Column2)
.Sum();
但它正在上升一个异常(exception):
我无法理解这一点。任何地方都没有字符串,模型和数据库中的列是整数。有什么不对?
我正在使用 MySql 提供程序。
最佳答案
看起来像 MySQL Linq 提供程序中的错误...错误可能来自提供程序中的内部字符串操作。
您可以尝试通过检索行并计算内存中的总和来解决它,如下所示:
var result = model.TableExample
.Where(condition here)
.Select(s => s.Column1 - s.Column2)
.AsEnumerable()
.Sum();
或这个:
var result = model.TableExample
.Where(condition here)
.AsEnumerable()
.Sum(s => s.Column1 - s.Column2);
请注意,如果有很多行,性能会受到影响,因为此代码获取每一行而不是只获取总和。
关于c# - 对 Entity Framework 中两列的差异求和,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3877399/