Vb.net 来自LINQ查询的和
无法让它工作。要从以下LINQ语句中获取数据库中所有金额的总和:Vb.net 来自LINQ查询的和,vb.net,asp.net-mvc-3,linq,Vb.net,Asp.net Mvc 3,Linq,无法让它工作。要从以下LINQ语句中获取数据库中所有金额的总和: Dim currentPaid = From a In db.Payments Where a.ForJob = id Select a.Amount Dim totalPaid As Double = currentPaid.Sum() 正如它强调的第二个陈述所说: 重载解析失败,因为没有可
Dim currentPaid = From a In db.Payments
Where a.ForJob = id
Select a.Amount
Dim totalPaid As Double = currentPaid.Sum()
正如它强调的第二个陈述所说:
重载解析失败,因为没有可访问的“Sum”接受此数量的属性。用代码问了另一个问题,有人准确地回答了我的问题,因此答案如下:
Dim sum = (From a In db.Payments Where a.ForJob = id Select a.Amount).Sum();
Dim totalPaid = db.Payments.Where(Function(a) a.ForJob = jobId).Sum(Function(a) a.Amount)
什么类型是当前支付的?您确定错误消息是
…属性数
而不是参数数
?currentPaid是上面的LINQ查询吗?不确定我是否应该在LINQ语句中求和什么类型是currentpayed
,它是IEnumerable(字符串的)
,IEnumerable(双精度的)
还是别的什么?尝试用类型声明它,您可能会看到编译器警告。如果a.Amount
是f.e.字符串,则会出现异常,因为您无法对字符串求和。如果我选择了一个数字字段,则查询对我来说效果良好。什么类型是.Amount?我现在有一个错误:范围变量“Amount”隐藏封闭块中的变量或查询表达式中以前定义的范围变量。我现在有一个错误:范围变量“Amount”隐藏封闭块中的变量或查询表达式中以前定义的范围变量。您好,那么也许你应该删除这个问题。它只会导致重复和混乱。改善现有问题是一条出路。