Próbuję nasion pewne stałe do mojego DB:Przechowywanie TimeSpan z Entity Framework Codefirst - SqlDbType.Time przelewowy
context.Stages.AddOrUpdate(s => s.Name,
new Stage()
{
Name = "Seven",
Span = new TimeSpan(2, 0, 0),
StageId = 7
});
context.Stages.AddOrUpdate(s => s.Name,
new Stage()
{
Name = "Eight",
Span = new TimeSpan(1, 0, 0, 0),
StageId = 8
});
To w moim nasieniu function() dla EF Codefirst migracje. Nie powiedzie się na etapie ósmym:
System.Data.UpdateException: Wystąpił błąd podczas aktualizowania wpisów . Zobacz wewnętrzny wyjątek, aby poznać szczegóły. ---> System.OverflowException: SqlDbType.Time przepełnienie. Wartość "1,00: 00: 00" jest poza zakresem. Musi być między 00: 00: 00.0000000 a 23: 59: 59.9999999.
Dlaczego nie można zapisać przedziału czasowego za pomocą EF? Mam nadzieję, że nie muszę robić jakieś głupie czas do kleszczy konwersję na obu końcach tutaj ...
Od kiedy to logiczny czas ograniczony do 24 godzin? Szczególnie głupi jak klasa "TimeSpan" [obsługuje wiele dni] (https://msdn.microsoft.com/en-us/library/85ydwftb%28v=vs.110%29.aspx). – Diederik
@Diederik, Nigdzie w odpowiedzi nie mówi, że jest to "TimeSpan", który jest ograniczony do 24 godzin, to zmapowana kolumna bazy danych ('Time') jest ograniczona.Chodzi o złe mapowanie, a nie ograniczenie "TimeSpan" (to zdecydowanie więcej niż 1 dzień). – haim770
Dokładnie. Mapowanie typu DB jest po prostu niepoprawne, ponieważ dane 'TimeSpan' nie zawierają danych typu db' Time'. To brzmi jak błąd. – Diederik