我正在尝试在 LINQ 中运行以下内容
double totalDistance = (from g in db.Logs join
h in db.Races on g.raceId equals h.RaceId
where g.userId == id select h.distance).Sum();
然而得到一个错误:
转换为值类型“Double”失败,因为具体化值为 null。结果类型的泛型参数或查询必须使用可为空的类型。
我试图添加?? 0
;这样:
double totalDistance = (from g in db.Logs join
h in db.Races on g.raceId equals h.RaceId
where g.userId == id select h.distance).Sum() ?? 0;
正如其他帖子中所建议的那样,这会产生错误:
操作员 '??' 不能应用于操作数 double 或 int
有什么建议么?
编辑:我的模型
namespace RacePace.Models
{
public class Race
{
public int RaceId { get; set; }
[DisplayName("Race Setting")]
public string place { get; set; }
[DisplayName("Distance (km)")]
public double distance { get; set; }
[DisplayName("Date")]
public DateTime date { get; set; }
[DisplayName("Commencement Time")]
public DateTime timeStarted { get; set; }
[DisplayName("Active")]
public Boolean active { get; set; }
[DisplayName("Description")]
public string description { get; set; }
[DisplayName("Creator")]
public int UserId { get; set; }
}
}