¿Cómo puedo asociar el tipo de NHibernate al tipo de hora de SQL Server? Estoy usando NH 3.2 y mapa por código.NHibernate y SQL 2008 Tipo de datos de hora
public class Schedule
{
public virtual int Id { get; set; }
public virtual string Name { get; set; }
public virtual TimeSpan Time { get; set; }
}
Aquí es mi clase de mapeo
public class ScheduleMapping : ClassMapping<Schedule>
{
public ScheduleMapping()
{
Id(x => x.Id, x => x.Generator(Generators.Native));
Property(x => x.Name, x => x.NotNullable(true));
Property(x => x.Time, x => x.NotNullable(true));
}
}
Ahora, cuando se crea la base de datos de esta columna "Tiempo" tiene tipo BIGINT SQL en lugar de tiempo. He leído el artículo this y that, pero no tengo claro cómo aplicar ninguna de estas soluciones.
=========== EDITAR ====================
creé y se inserta nuevo calendario de la siguiente manera:
var newSchedule = new Schedule {
Name = "My Schedule",
Time = new TimeSpan(DateTime.Now.Hour, DateTime.Now.Minute, 0)
};
session.SaveOrUpdate(newSchedule);
cuando se inserta estos datos (en torno a 19:27) de la columna que contiene el valor de tiempo '700200000000', que podría ser garrapatas, pero lo más importante fue que cuando me preguntó DB para estos valores
var retrievedSchedules = session.QueryOver<Schedule>().List();
la propiedad Time se estableció correctamente en 19: 27.Origin aliado, quería que la propiedad Time representara la hora en la que se supone que se ejecutará Schedule. Aunque el tipo de datos de SQL Server para esta columna se definió como BIGINT y el valor se representa como (lo más probable) tics, después de la recuperación se transitó correctamente a una hora, que es lo que yo quería. Esto ya no es una pregunta, pero voy a dejar esto para, con suerte, el beneficio de otra persona.
Sí, funcionó exactamente como sugirió. Conocía el tipo TimeAsTimeSpanType, pero no pude encontrar la manera de especificarlo en mi clase de mapeo. ¡Gracias! – user981375