В этом есть два значения .Date
, что создает некоторую путаницу;здесь:
t => t.Date
это означает «получить доступ к члену с именем Date
, a DateTime
»;так вот:
.Max(t => t.Date)
это означает "найти максимум по всем Date
членам, a DateTime
"
Однако!Это:
).Date.A
^^^^^
означает «взять часть этого значения только для даты» (любой DateTime
имеет элемент .Date
, который является частью значения только для даты);так что да: это идет к полуночи, затем вы добавляете час.Так;не делай этого!Вероятно, вам нужно:
if (user.Connections.Max(t => t.Date).AddHours(1) > DateTime.Now)
или, возможно, более эффективно:
var cutoff = DateTime.Now.AddHours(-1);
if (user.Connections.Any(t => t.Date > cutoff)) {
...
}
синус, который может закорачивать.