Crystal Report-Linq select语句在字段中查找空值

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

我正在尝试使用Linq查询MyReports文件夹中的自定义crystal报表。然而,crystal reports引擎抱怨空值

我已经设法在序列号可能为空的地方将其留空,但DateTime对我来说更重要

我试过:

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日