C# 在sql查询中将字符串解析为十进制和求和

C# 在sql查询中将字符串解析为十进制和求和,c#,asp.net,type-conversion,C#,Asp.net,Type Conversion,我一直在尝试从数据库查询中添加两个值(即字符串)。我试图解析它们并将它们添加到数据库查询中,但我做不到 DB值: Amount1: -400 (string) Amount2: 400 (string) var Result = Model.Fin.Where(*some conditions*).Sum(a => decimal.TryParse(a.Amount)); 我需要(-400)+(400)成为0 我的代码是这样的: Amount1:

我一直在尝试从数据库查询中添加两个值(即字符串)。我试图解析它们并将它们添加到数据库查询中,但我做不到

DB值:

Amount1:       -400 (string)
Amount2:        400 (string)
var Result = Model.Fin.Where(*some conditions*).Sum(a => decimal.TryParse(a.Amount));
我需要
(-400)+(400)
成为
0

我的代码是这样的:

Amount1:       -400 (string)
Amount2:        400 (string)
var Result = Model.Fin.Where(*some conditions*).Sum(a => decimal.TryParse(a.Amount));

请帮忙。

TryParse
需要一个
out
参数以及要解析的值,而且它的返回值是
bool
而不是小数

因此,您应该使用的有效语法是

var models = Model.Fin.Where(some conditions).ToList();
var Result = models.Sum(a => decimal.Parse(a.Amount))

TryParse
需要一个
out
参数以及要分析的值,而且它的返回值是
bool
而不是小数

因此,您应该使用的有效语法是

var models = Model.Fin.Where(some conditions).ToList();
var Result = models.Sum(a => decimal.Parse(a.Amount))

TryParse
的情况下,您必须输入更长且效率低下的代码:


由于Linq to Sql无法创建具有
decimal.TryParse
的查询,因此必须切换到
Linq to Objects
-
AsEnumerable()
获取数据并在客户端对其进行汇总。

如果是
TryParse
,则必须输入更长且效率低下的代码:


由于Linq to Sql无法创建具有
decimal.TryParse
的查询,因此必须切换到
Linq to Objects
-
AsEnumerable()
获取数据并在客户端汇总。

EntityFramework.SqlServer.dll中出现“System.NotSupportedException”类型的异常,但未在用户代码中处理其他信息:LINQ to Entities无法识别“System.Decimal Parse(System.String)”方法,这种方法不能转化为商店的表达方式。没问题,我很高兴它对你有所帮助。为了让您知道问题出在哪里,在Linq中,Sql表达式被转换为Sql表达式,因此它不理解我们在其中编写的一些
C
代码。在这些情况下。我们通常先获得输出,然后对其应用所需的逻辑。:-)EntityFramework.SqlServer.dll中发生类型为“System.NotSupportedException”的异常,但未在用户代码中处理其他信息:LINQ to Entities无法识别方法“System.Decimal Parse(System.String)”方法,并且此方法无法转换为存储表达式没有问题,很高兴它对您有所帮助。为了让您知道问题出在哪里,在Linq中,Sql表达式被转换为Sql表达式,因此它不理解我们在其中编写的一些
C
代码。在这些情况下。我们通常先获得输出,然后对其应用所需的逻辑。:-)