C# 在LINQ查询中获取格式化的可空日期字符串

C# 在LINQ查询中获取格式化的可空日期字符串,c#,entity-framework,linq,C#,Entity Framework,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 <=

这似乎真的应该起作用:

 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();
var result=(从Db.RebateDetail中的x开始)
其中batch!=null&&batch!=“x.BatchNumber.Value==Convert.ToInt32(批处理):x.DatetimeCreated.Date>=Convert.ToDateTime(fromDate).Date&&x.DatetimeCreated.Date当前,“如果
CheckDate
为null”它将生成一个
System.InvalidOperationException
,而不是获取
??
运算符RHS上的值,因此出现错误“可空对象必须有值”

您需要确保LHS返回值或RHS返回值

您要查找的是条件运算符
?:

checkDate = x.CheckDate.HasValue ? 
          x.CheckDate.Value.ToString("MM/dd/yy") : string.Empty
当前,“如果
CheckDate
为null”,则会生成
系统。InvalidOperationException
,而不是获取
运算符RHS上的值,因此错误“可为null的对象必须有值”

您需要确保LHS返回值或RHS返回值

您要查找的是条件运算符
?:

checkDate = x.CheckDate.HasValue ? 
          x.CheckDate.Value.ToString("MM/dd/yy") : string.Empty

我也曾尝试过,但类型为?stating?的操作数出现错误,无法应用于类型DateTime我也尝试过,但类型为?stating?的操作数出现错误,无法应用于类型DateTime