linq选择不同的年份sql日期字段

big*_*les -1 c# linq sql-server entity date

我有一个 SQL 记录表,其日期字段类似于

|----日期----| 2016年1月22日 1986年2月3日 1992年12月9日 2016年10月9日

我想做一个 linq to 实体查询来获取一组唯一的年份,例如

var years = {"2016", "1986", "1992"}
Run Code Online (Sandbox Code Playgroud)

我从上一个问题中找到了一个答案,将提取唯一的日期,但我只需要翻译成年份。

Yac*_*sad 5

假设您的实体类如下所示:

public class MyEntity
{
    public int MyEntityId { get; set; }
    public DateTime DateTimeProperty { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

那么你的查询将如下所示:

var unique_years =
    context
    .MyEntities
    .Select(s => s.DateTimeProperty.Year)
    .Distinct()
    .ToList();
Run Code Online (Sandbox Code Playgroud)