我有一個SQL日期字段類似於linq選擇不同的年份sql日期字段
| ----日期---- | 2016年1月22日 1986年2月3日 1992年12月9日 2016年10月9日
我願做一個LINQ到實體查詢來獲取的獨特年陣列如
var years = {"2016", "1986", "1992"}
我發現一個答案here從以前的問題將拉獨特的日期,但我需要翻譯成只有幾年。
我有一個SQL日期字段類似於linq選擇不同的年份sql日期字段
| ----日期---- | 2016年1月22日 1986年2月3日 1992年12月9日 2016年10月9日
我願做一個LINQ到實體查詢來獲取的獨特年陣列如
var years = {"2016", "1986", "1992"}
我發現一個答案here從以前的問題將拉獨特的日期,但我需要翻譯成只有幾年。
假設你的實體類看起來是這樣的:
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();
你可以做鮮明的()
var uniqueYears = db.Orders.Select(s => s.OrderDate.Year).Distinct();
假設db
是你的DbContext和Orders
的對象之前選擇DateTime對象的Year
屬性是基於你的DbContext類的類型DbSet<Order>
和Order實體的屬性有OrderDate
類型DateTime
的財產。
或如果您已有一個DateTime
對象的列表。
var dateTimeList = new List<DateTime>();
var uniqueYears = dateTimeList.Select(s => s.Year).Distinct();
您應該通過lambda參數's'訪問'OrderDate',而不是直接訪問'Orders' DbSet。 –
是的! 。感謝您注意到這一點 – Shyju
你已經有一個實體類?它看起來怎樣? –
不明原因的反對票是不必要的。這個問題已經解決,受訪者對答案作了明確的解釋。這個問題很明顯,他們可以回答。我將不勝感激在其他地方進行的任何非建設性的反對票。 – biggles