Вы можете получить месяц смещаемого значения datetimeoffset следующим образом:
DateTimeOffset? dt;
dt?.Value.Month;
Однако мне действительно интересно, сможет ли EF перевести это:
x => x.ApplyDate?.Month == f
в SQL выражение. Я полагаю, что это откат к фильтрации в памяти. Кроме того, даже если EF сможет перевести это в выражение SQL, оно не будет оптимальным, поскольку индексы, которые могут быть определены в этом столбце, не будут использоваться.
Поэтому я бы Предложите переписать выражение LINQ примерно так:
x :> x.ApplyDate != null && x.ApplyDate >= new DateTimeOffset(someDate.Year, someDate.Month, 1) && x.ApplyDate <= new DateTimeOffset(someDate.Year, someDate.Month, daysInMonth)
(Если вы хотите получить данные, которые относятся к определенному c месяцу в указанном c году. Если вы хотите получить записи, которые относятся к определенному месяцу, независимо от года, я не вижу другого варианта)