c# - 如何检查列值是否具有“值”
问题描述
我想检查“Acceptance”的值是否为“Accepted”以及它是否具有该值 - .Sum 否则我想得到 0,但是在找到正确的语法时遇到了一些问题。我无法获得“接受”值
我的方法
public decimal Prices2(string term)
{
var kl= db.Order.Where(x => x.Client == term && x.Acceptance == "Accepted");
if (term != null && kl.Acceptance == "Accepted" )
{ ^^//Element does not contain definition"Acceptance"
return kl.Sum(x => x.Price);
}
else
{
return 0;
}
}
我如何获得“任期”
public IEnumerable<string> GetClient(string term)
{
return db.Order.Where(x => (term != null && x.Client.Contains(term)) || (term == null)).OrderBy(c => c.Client).Take(10).Select(a => a.Client).Distinct();
}
当我尝试这个时:
return db.Order.Where(x => x.Client == term && x.Acceptance == "Accepted").sum(x=>x.Price)
当客户没有“已接受”订单时出现错误
System.InvalidOperationException:“转换为值类型“System.Decimal”失败,因为具体化值为空。结果类型的泛型参数或查询必须使用可为空的类型。”</p>
我如何先检查是否有客户接受的订单,如果有则返回 0?
解决方案
首先将查询分配给一个变量,
var orders = db.Order.Where(x => x.Client == term && x.Acceptance == "Accepted");
var result= orders.Count() > 0 ? orders.Sum(x=>x.Price) : 0.0M;
return result;
你返回的方法类型应该是十进制
.
推荐阅读
- google-apps-script - Google Sheet 脚本运行不可靠
- c# - 在没有nuget的.net4.0项目中安装rx.net
- python - 用鼠标选择图像的一个区域并记录选择的尺寸
- symfony - Symfony 4 使用 Monolog 的 Redis 处理程序启用日志记录
- python - Altair 复选框默认值
- python - Opencv显示错误的图像宽度和高度
- node.js - 如何在节点 js 中将 HTTP 端点订阅到 SNS?
- python - 导入 pygame 时出现 ImportError
- chart.js - 是否可以在 x 轴上为折线图添加水平范围滑块控件以使用 chartJS 动态控制 x 轴数据
- javascript - 在javascript中按字母顺序对对象数组进行排序