c# - 在 LINQ 查询中获取格式化的可为空日期字符串
问题描述
这似乎真的应该工作:
var result = (from x in Db.RebateDetail
where batch != null && batch != "" ? x.BatchNumber.Value == Convert.ToInt32(batch) : x.DatetimeCreated.Date >= Convert.ToDateTime(fromDate).Date && x.DatetimeCreated.Date <= Convert.ToDateTime(toDate).Date
select new
{
id = x.Id,
batchNumber = x.BatchNumber,
firstName = x.FirstName,
checkDate = x.CheckDate.Value.ToString("MM/dd/yy") ?? "",
checkNumber = x.CheckNumber
}).ToList();
checkDate 错误输出为“Nullable object must have a value”。
这不是什么??应该做什么?我已经尝试了几种变化,但似乎无法让它快乐。
更新:这是使用实体框架和 LinqToEF
解决方案
目前,“如果CheckDate
为空”它将产生一个System.InvalidOperationException
而不是在运算符的 RHS 上取值,??
因此错误“可空对象必须有一个值”。
您需要确保 LHS 返回值或 RHS 返回值。
您正在寻找的是条件运算符 ?:
checkDate = x.CheckDate.HasValue ?
x.CheckDate.Value.ToString("MM/dd/yy") : string.Empty
推荐阅读
- c++ - 错误“3 [main] a 8724 cygwin_exception::open_stackdumpfile:将堆栈跟踪转储到 a.exe.stackdump”
- c# - 我对作为 Azure 应用服务 (P3) 托管的 .NET Core 2 Web api 的基线 RPS 有什么期望?
- c# - 已经有一个与此命令关联的打开的 DataReader,必须先关闭它。在asp.net C#中
- c# - WinForms:ItemCheck 事件在某些项目上触发两次
- android - 显示长位图
- python - 使用 UI 获取变量和调用函数。玛雅蟒
- python - 每当我使用“playsound”在后台播放声音时,我的游戏的其余部分都不会加载
- javascript - Pixabay api不会显示图片(React js)
- javascript - 使用按钮单击 jQuery 触发 Google 翻译
- laravel - 带有 Vue 和 Laravel API 的推送器无法正常工作