Crystal Report-Linq select语句在字段中查找空值
我正在尝试使用Linq查询MyReports文件夹中的自定义crystal报表。然而,crystal reports引擎抱怨空值 我已经设法在序列号可能为空的地方将其留空,但DateTime对我来说更重要 我试过:Crystal Report-Linq select语句在字段中查找空值,linq,asp.net-mvc-5,crystal-reports,entity-framework-6,Linq,Asp.net Mvc 5,Crystal Reports,Entity Framework 6,我正在尝试使用Linq查询MyReports文件夹中的自定义crystal报表。然而,crystal reports引擎抱怨空值 我已经设法在序列号可能为空的地方将其留空,但DateTime对我来说更重要 我试过: InspectionDate = subpat.InspectionDate == null ? "" : subpat.InspectionDate, 但错误在于: Type of conditional expression cannot be determined becau
InspectionDate = subpat.InspectionDate == null ? "" : subpat.InspectionDate,
但错误在于:
Type of conditional expression cannot be determined because there is no implicit conversion between 'string' and 'System.DateTime?'
如果为null,我只需要一个空白结果
我的问题是:
var today = DateTime.Now.Date;
var tomorrow = today.AddDays(30);
var dateresult = db.ClinicalINSs.GroupBy(d => d.ClinicalAssetID)
.SelectMany(g => g.OrderByDescending(d => d.NextInspectionDate)
.Take(1));
var ClinicalIDVM = (from s in dateresult.Where(q => q.NextInspectionDate <= tomorrow)
join co in db.ClinicalAssets on s.ClinicalAssetID equals co.ClinicalAssetID into AR
let subred = AR.OrderByDescending(subredASS => subredASS.ClinicalAssetID).FirstOrDefault()
join cp in db.ClinicalPATs on s.ClinicalAssetID equals cp.ClinicalAssetID into AP
let subpat = AP.OrderByDescending(SubPATASS => SubPATASS.ClinicalAssetID).FirstOrDefault()
orderby s.NextInspectionDate descending
select new ClinicalIDVM
{
ClinicalAssetID = s.ClinicalAssetID,
ProductName = subred.ProductName,
SerialNo = subred.SerialNo == null ? "" : subred.SerialNo,
InspectionDate = subpat.InspectionDate,
NextInspectionDate = s.NextInspectionDate
}).ToList();
var today=DateTime.Now.Date;
var明天=今天。添加天数(30);
var dateresult=db.ClinicalINSs.GroupBy(d=>d.ClinicalAssetID)
.SelectMany(g=>g.OrderByDescending(d=>d.NextInspectionDate)
.采取(1)项措施;
var ClinicalIDVM=(从dateresult.Where(q=>q.NextInspectionDate subredASS.ClinicalAsetId.FirstOrDefault()中的s)
将s.ClinicalAsetId等于cp.ClinicalAsetId的db.ClinicalPATs中的cp加入AP
让subpat=AP.OrderByDescending(SubPATASS=>SubPATASS.ClinicalAssetID).FirstOrDefault()
orderby s.NextInspectionDate降序
选择新的ClinicalIDVM
{
ClinicalAsetId=s.ClinicalAsetId,
ProductName=subred.ProductName,
SerialNo=subred.SerialNo==null?”:subred.SerialNo,
InspectionDate=子站点InspectionDate,
NextInspectionDate=s.NextInspectionDate
}).ToList();
你可以用这种方法试试
InspectionDate = subpat.InspectionDate == null ? (DateTime?)null : subpat.InspectionDate
或者将InspectionDate的类型更改为字符串
,然后执行以下操作
InspectionDate = subpat.InspectionDate.HasValue
? subpat.InspectionDate.Value.ToString("yyyy-MM-dd") : "";
已更新
InspectionDate = subpat.InspectionDate == null ? (object) "" : subpat.InspectionDate
它必须是一个字符串才能设置为空?但是ToString缺少1个参数你是说第二个解决方案?您得到的错误是什么?方法“ToString”没有重载1个参数什么类型的
subpat.InspectionDate
类型和样本值?public Datetime?InspectionDate{get;set;}样本数据为:2019年12月31日