gpt4 book ai didi

c# - Linq 的不同年月(对实体)

转载 作者:太空狗 更新时间:2023-10-29 22:11:09 26 4
gpt4 key购买 nike

我有一个带有 ReleaseDate 属性的 Publications 实体集。为了创建分页小部件,我想从该集合中获取所有不同年份和月份组合的列表。

最好是,我想要一个 DateTime 值列表,其中日期为 1,用于我的出版物集中每个不同的年月:

IEnumerable<DateTime> DistinctYearMonths = from p in context.Publications.  .... ?

我怎样才能完成这个 linq-to-entities 查询?

最佳答案

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 的投影中不支持带参数的构造函数,并且 YearMonthDateTime 属性是只读的,因此您不能使用初始化语法设置它们( new DateTime { Year = p.ReleaseDate.Year, ... } 是不可能的))。

关于c# - Linq 的不同年月(对实体),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8011094/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com