如何將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