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));
}
}
である代わりに、TIMEのBIGINT SQL型があります。私はthisとthatの記事を読んだことがありますが、これらの解決策をどのように適用するかはわかりません。
=========== EDIT ====================私が作成され、このように新しいスケジュールを挿入
:
このデータはティック可能性が時間]列に含まれる値が「7002億」(19:27付近)を挿入したが、私は、これらの値のためのDBを照会したときに最も重要なことは、ということでしたvar newSchedule = new Schedule {
Name = "My Schedule",
Time = new TimeSpan(DateTime.Now.Hour, DateTime.Now.Minute, 0)
};
session.SaveOrUpdate(newSchedule);
var retrievedSchedules = session.QueryOver<Schedule>().List();
Timeプロパティが19:27に正しく設定されていました.Origin私は、Scheduleが実行されるはずの時間を表すTimeプロパティを必要としていました。この列のSQL Serverのデータ型はBIGINTとして定義されていて、その値は(ほとんどの場合)ティックで表されますが、取得後は正しく変換されていました。これはもはや問題ではありませんが、私は、うまくいけば、他の誰かの利益のためにこれを残すつもりです。
はい、あなたの提案どおりに機能しました。私はTimeAsTimeSpanType型を認識していましたが、マッピングクラスでその型を指定する方法を理解できませんでした。ありがとう! – user981375