时间和Nhibernate

Che*_*rot 6 nhibernate nhibernate-mapping

你好我有一个使用nhibernate作为orm的应用程序,我需要存储代表时间的数据,最好的方法是什么?

nhibenate不知道将时间字段从db转换为时间跨度,只有字符串.

Stu*_*lds 7

NHibernate支持DateTime,Ticks,TimeSpan和Timestamp.确保在映射元素上明确指定类型,因为不同的时间类型具有不同的语义,因此NHibernate猜测的可能不正确.

如果您仍然遇到问题,请修改您的帖子以包含实体的相关部分,映射文件以及您遇到的实际问题.

编辑:

例如,使用以下类TimeSpan:

public class MyClass
{
    // Other properties
    // ...
    // ...
    public virtual TimeSpan MyTimeProperty { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

和映射文件:

<!-- other properties -->
<property name="MyTimeProperty" type="TimeSpan" /> <!-- Note: NH expects the DB type to be DbType.Int64 -->
Run Code Online (Sandbox Code Playgroud)

您表明您正在尝试映射TimeSpan("nhibenate不知道将时间字段从db转换为时间跨度,只有字符串").如果这是.NET(typeof TimeSpan)和数据库(DbType.Int64)之间正确的类型匹配,NH应该自动执行此操作(即您不需要指定type="TimeSpan").因此,如果它不起作用,我怀疑你的设置方式存在问题.如果您发布带有完整签名的属性/字段声明,<property>映射文件中此属性的行以及数据库中的列定义,则可能会有所帮助.