我正在尝试计算两列之差的总和:

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/

10-13 08:30