如何将NHibernate类型映射到SQL Server的TIME类型?我使用NH 3.2和地图代码。NHibernate和SQL 2008时间数据类型
public class Schedule
{
public virtual int Id { get; set; }
public virtual string Name { get; set; }
public virtual TimeSpan Time { get; set; }
}
这里是我的映射类
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));
}
}
现在,当我从这个列上创建数据库“时间” BIGINT SQL类型,而不是时间。我已阅读this和that文章,但我不清楚如何应用这些解决方案。
===========编辑====================
我创建并插入新的时间表是这样的:
var newSchedule = new Schedule {
Name = "My Schedule",
Time = new TimeSpan(DateTime.Now.Hour, DateTime.Now.Minute, 0)
};
session.SaveOrUpdate(newSchedule);
当这个数据插入(大约下午7点27分)的时间包含列值“7002亿”,这可能是蜱,但最重要的是,当我问DB这些值
var retrievedSchedules = session.QueryOver<Schedule>().List();
Time属性正确设置为19:27.Origin盟友我希望Time属性表示Schedule应该运行的时间。尽管此列的SQL Server的数据类型被定义为BIGINT,并且该值表示为(最可能)的刻度,但在检索后它正确转换为时间,这正是我想要的。这不再是一个问题,但我会留下这个希望,别人的利益。
是的,它完全按照您的建议工作。我意识到TimeAsTimeSpanType类型,但无法弄清楚如何在我的映射类中指定它。谢谢! – user981375