流利的Nhiberhate和缺少毫秒

Cha*_*son 14 nhibernate fluent-nhibernate fluent-nhibernate-mapping

我正在使用Fluent Nhibernate和Nhibernate来完成我当前的项目.我需要将时间记录到毫秒.我有这个用于我的映射

            Map(x => x.SystemDateTime)
            .CustomType("Timestamp")
            .Not.Nullable();
Run Code Online (Sandbox Code Playgroud)

我创建了hbm.xml文件,该行如下:

<property name="SystemDateTime" type="Timestamp">
  <column name="SystemDateTime" not-null="true" />
</property>
Run Code Online (Sandbox Code Playgroud)

我已经读过这是修复,但数据库中的记录没有毫秒.有谁解决了这个问题.我也尝试过CustomSqlType.

谢谢

Jon*_*att 13

我们使用与您相同的方法,它确实存储了毫秒.如果你并不总是这样做,虽然你的旧记录将失去他们的毫秒.

假设您要为所有DateTime字段存储毫秒,可以使用约定:

public class OurPropertyConventions : IPropertyConvention
{
    public void Apply(IPropertyInstance instance)
    {
        Type type = instance.Property.PropertyType;
        if (type == typeof(DateTime) || type == typeof(DateTime?))
            instance.CustomType("Timestamp");
    }
}
Run Code Online (Sandbox Code Playgroud)

你的映射现在可以是:

Map(x => x.SystemDateTime).Not.Nullable();
Run Code Online (Sandbox Code Playgroud)