现在NHibernate 5已经出来了,我想知道在SQL Server 2016数据库中将日期作为datetime2保存为本地日期的推荐方法是什么。到目前为止,日期被解释为本地(因此,属性最终得到正确的值),但现在,行为已经改变,我无法使用LocalDateTime。
不幸的是,我的donmain的行为依赖于将这些日期自动加载为本地日期...
关于如何解决这个问题的任何指示?
谢谢,
路易斯
答案 0 :(得分:0)
由于我没有找到禁用此行为的方法,因此我最终创建了一种新类型,只需调整数据格式(始终考虑以本地格式保存):
public class LocalDateTimeTypeNoThrow : LocalDateTimeType {
public LocalDateTimeTypeNoThrow() {
}
public LocalDateTimeTypeNoThrow(DateTimeSqlType sqlType) : base(sqlType) {
}
public override string Name => "LocalDateTimeNoThrow";
public override void Set(DbCommand st, object value, int index, ISessionImplementor session) {
var dateValue = (DateTime) value;
//removed throwing from here
st.Parameters[index].Value = AdjustDateTime(dateValue);
}
}
如果有更好的方式,请告诉我。
路易斯