Я пытаюсь использовать запрос Linq для пользовательского отчета Crystal в папке MyReports. Тем не менее, механизм отчетов Crystal жалуется на нулевые значения.
Мне удалось заполнить пустое поле для серийного номера, где он может быть нулевым, но DateTime является для меня большей проблемой.
I пробовал:
InspectionDate = subpat.InspectionDate == null ? "" : subpat.InspectionDate,
Но ошибка такова:
Type of conditional expression cannot be determined because there is no implicit conversion between 'string' and 'System.DateTime?'
Я бы просто хотел получить пустой результат, если ноль.
Мой запрос:
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();