Tôi cố gắng để chạy sau trong LINQNhận lỗi null LINQ; sau đó không thể sử dụng?
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();
Tuy nhiên nhận được một lỗi:
The cast to value type 'Double' failed because the materialized value is null. Either the result type's generic parameter or the query must use a nullable type.
Tôi cố gắng để thêm vào ?? 0
; ví dụ rằng:
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;
Như đã đề cập trong bài viết khác tuy nhiên điều này mang lại một lỗi:
operator '??' cannot be applied to operands double or int
Bất kỳ lời đề nghị?
EDIT: mô hình của tôi
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; }
}
}
Có phải 'khoảng cách' không thể sử dụng được không? – mattytommo
Thật không may, tin nhắn sau đó trở thành 'Opperator' ?? ' không thể được áp dụng cho 'đôi' hoặc 'nổi' – NickP
Bạn có thể hiển thị mô hình của mình không? – Alex