我写了以下查询
var vehicleQuery = VehicleRepository.Where(o => o.IsActive && o.IsVisible);
var tempdate = vehicleQuery
.Select(x => x.Images
.Where(y => y.IsActive && y.IsVisible)
.Max(u => u.CreationDate)
);
我是如何从Images实体获得Max CreationDate的?
答案 0 :(得分:1)
您可以使用SelectMany
;
var tempdate = vehicleQuery
.SelectMany(x => x.Images
.Where(i => i.IsActive && i.IsVisible)
.Select(i => i.CreationDate))
.Max();
修改强>
错误得到:=“转换为值类型'System.DateTime'失败,因为 具体化值为null。结果类型的通用 参数或查询必须使用可空类型。“
也许CreationDate
是可以为空的类型,你必须检查:
var tempdate = vehicleQuery
.SelectMany(x => x.Images
.Where(i => i.IsActive && i.IsVisible && i.CreationDate.HasValue)
.Select(i => i.CreationDate))
.Max();
答案 1 :(得分:0)
如果您要查找单个最大日期,则需要使用SelectMany
将车辆图像展平为一个序列:
vehicleQuery.SelectMany(v => v.Images).Where(img => img.IsActive && img.IsVisible).Max(img => img.CreationDate);