NHibernate5:在没有特定类型的情况下将日期转换为本地日期

时间:2017-10-26 09:24:50

标签: nhibernate

现在NHibernate 5已经出来了,我想知道在SQL Server 2016数据库中将日期作为datetime2保存为本地日期的推荐方法是什么。到目前为止,日期被解释为本地(因此,属性最终得到正确的值),但现在,行为已经改变,我无法使用LocalDateTime。

不幸的是,我的donmain的行为依赖于将这些日期自动加载为本地日期...

关于如何解决这个问题的任何指示?

谢谢,

路易斯

1 个答案:

答案 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);
    }
}

如果有更好的方式,请告诉我。

路易斯