IEnumerable<DateTime> DistinctYearMonths = context.Publications
.Select(p => new { p.ReleaseDate.Year, p.ReleaseDate.Month })
.Distinct()
.ToList() // excutes query
.Select(x => new DateTime(x.Year, x.Month, 1)); // copy anonymous objects
// into DateTime in memory
Промежуточный шаг для проецирования в анонимный тип необходим, потому что вы не можете напрямую проецировать в DateTime
(конструкторы с параметрами не поддерживаются в проекциях в LINQ to Entities и свойствах Year
и Month
DateTime
только для чтения, поэтому вы не можете установить их с синтаксисом инициализатора (new DateTime { Year = p.ReleaseDate.Year, ... }
невозможно)).