修复500

TimeOnly ↔ TimeSpan
This commit is contained in:
2026-07-26 12:56:59 +08:00 Unverified
parent 0c3745d91a
commit 32eb723c02
3 changed files with 215 additions and 0 deletions
@@ -101,6 +101,12 @@ public sealed class AppDbContext(DbContextOptions<AppDbContext> options)
configurationBuilder.Properties<DateOnly>()
.HaveConversion<DateOnlyDateTimeConverter>()
.HaveColumnType("date");
// Connector/NET returns MySQL TIME values as TimeSpan. Convert at the
// provider boundary so schedule time slots can still use TimeOnly.
configurationBuilder.Properties<TimeOnly>()
.HaveConversion<TimeOnlyTimeSpanConverter>()
.HaveColumnType("time");
}
protected override void OnModelCreating(ModelBuilder builder)
@@ -931,3 +937,8 @@ public sealed class DateOnlyDateTimeConverter()
: ValueConverter<DateOnly, DateTime>(
date => date.ToDateTime(TimeOnly.MinValue),
value => DateOnly.FromDateTime(value));
public sealed class TimeOnlyTimeSpanConverter()
: ValueConverter<TimeOnly, TimeSpan>(
time => time.ToTimeSpan(),
value => TimeOnly.FromTimeSpan(value));