Your issue is the default mapping of TimeSpan is to sql Time, which is a time, not a time period. But EF supports mapping a TimeSpan to a long, and will convert the TimeSpan to ticks, which is a period and can be negative.
https://learn.microsoft.com/en-us/ef/core/modeling/value-conversions?tabs=data-annotations