EF Core – 8.0 new features

參考

Docs – What's New in EF Core 8

 

Support DateOnly and TimeOnly

SQL Server 早在 2008 年就已經支持 date 和 time 類型了。反觀 .NET 一直到 6.0 才支持 DateOnly 和 TimeOnly 類型。

而 EF Core 更是直到 2023 年 8.0 版本才支持。

不需要任何配置,直接用就可以了

public class Person
{
    public int Id { get; set; }
    public DateOnly StartDate { get; set; }
    public TimeOnly TimeOfDay { get; set; }
}

SQL

Program.cs

var app = builder.Build();
using var scope = app.Services.CreateScope();
var db = scope.ServiceProvider.GetRequiredService<ApplicationDbContext>();
var person = new Person
{
    Name = "Derrick",
    StartDate = new DateOnly(2023, 1, 1),
    TimeOfDay = new TimeOnly(16, 50)
};
db.People.Add(person);
db.SaveChanges();
var person1 = db.People.FirstOrDefault(e => e.StartDate == new DateOnly(2023, 1, 1));

語句

.NET 6.0 & 7.0 Polyfill

6.0,7.0 如果也想使用 DateOnly 和 TimeOnly 可以使用 Polyfill。Github – ErikEJ / EFCore.SqlServer.DateOnlyTimeOnly

安裝

在 Program.cs config SQL Server 時多加一句

這樣就可以了。8.0 後就把這些 remove 掉,就可以了。

OData

odata v8.0.7 就支持 DateOnly 和 TimeOnly 了。所以一早就可以搭配 EF Core Polyfill 使用了哦

注: query 的 value 不需要 quote 哦

是 eq 2023-01-01 而不是 eq '2023-01-01',不要搞錯哦

response

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章