我有一个记录的SQL表,日期字段类似于
| ---- ----日期| 2016年1月22日 1986年2月3日 1992年12月9日 2016年10月9日
我想做一个linq to entity查询来获得一系列独特的年份,例如
var years = {"2016", "1986", "1992"}
我发现前一个问题的答案here会提取独特的日期,但我只需要翻译成几年。
答案 0 :(得分:4)
假设您的实体类看起来像这样:
public class MyEntity
{
public int MyEntityId { get; set; }
public DateTime DateTimeProperty { get; set; }
}
然后您的查询将如下所示:
var unique_years =
context
.MyEntities
.Select(s => s.DateTimeProperty.Year)
.Distinct()
.ToList();
答案 1 :(得分:0)
在执行Distinct()之前,您可以选择DateTime对象的Year
属性
var uniqueYears = db.Orders.Select(s => s.OrderDate.Year).Distinct();
假设db
是DbContext的对象,而Orders
是类型为DbSet<Order>
的DbContext类的属性,而Order实体具有类型为{{OrderDate
的属性1}}。
或如果您已有DateTime
个对象的列表。
DateTime