¿Cuál es el tipo de SQL correcto para almacenar un .Net Timespan con valores > 24:00:00?
Estoy intentando almacenar un .Net TimeSpan
en SQL Server 2008 R2.
EF Code First parece sugerir que debería almacenarse como Time(7)
en SQL.
Sin embargo TimeSpan
, en .Net puede manejar períodos superiores a 24 horas.
¿Cuál es la mejor manera de manejar el almacenamiento de .Net TimeSpan
en el servidor SQL?
Lo almacenaría en la base de datos como BIGINT
y almacenaría la cantidad de ticks (por ejemplo, propiedad TimeSpan.Ticks ).
De esa manera, si quisiera obtener un objeto TimeSpan cuando lo recupere, podría simplemente hacer TimeSpan.FromTicks(value) , lo cual sería fácil.
Gracias por el consejo. Como no existe un equivalente en el servidor SQL. Simplemente creé un segundo campo que convirtió el TimeSpan en ticks y lo almacené en la base de datos. Luego evité almacenar el TimeSpan.
public Int64 ValidityPeriodTicks { get; set; }
[NotMapped]
public TimeSpan ValidityPeriod
{
get { return TimeSpan.FromTicks(ValidityPeriodTicks); }
set { ValidityPeriodTicks = value.Ticks; }
}