如何实现自定义NHibernate映射类型的创建?

2026-05-25 10:333阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计783个文字,预计阅读时间需要4分钟。

如何实现自定义NHibernate映射类型的创建?

由于项目需求,需要引入一个Time结构,因为需要和DateTime对象进行换算。由于是采用和DateTime一样的Tickets方式保存数值,数据库中存储的是long类型的值。为了不将Mapping和Domain混淆,所以直接输出结果:需要引入Time结构。

由于项目需要,需要一个Time结构,因为需要和DateTime对象进行换算,因此是一个采取和DateTime一样的Tickets方式保存数值,在数据库保存的是long型。因为不想为了Mapping而污染Domain,所以就增加自定义射的对象TimneType。

因为一个Time对象只需要一个Column保存,并且是一个值类型,所以没有从IUserType继承,而选择了NHibernate.Type.PrimitiveType。PrimitiveType 是NHibernate用于扩展ValueType的基类。

其实重写非常简单。基本不需要太多的NHibernate知识就可以完成。不过抱着折腾的态度),还是说说几个关键属性。

如何实现自定义NHibernate映射类型的创建?

DefaultValue

很简单返回的是new Time。

阅读全文

本文共计783个文字,预计阅读时间需要4分钟。

如何实现自定义NHibernate映射类型的创建?

由于项目需求,需要引入一个Time结构,因为需要和DateTime对象进行换算。由于是采用和DateTime一样的Tickets方式保存数值,数据库中存储的是long类型的值。为了不将Mapping和Domain混淆,所以直接输出结果:需要引入Time结构。

由于项目需要,需要一个Time结构,因为需要和DateTime对象进行换算,因此是一个采取和DateTime一样的Tickets方式保存数值,在数据库保存的是long型。因为不想为了Mapping而污染Domain,所以就增加自定义射的对象TimneType。

因为一个Time对象只需要一个Column保存,并且是一个值类型,所以没有从IUserType继承,而选择了NHibernate.Type.PrimitiveType。PrimitiveType 是NHibernate用于扩展ValueType的基类。

其实重写非常简单。基本不需要太多的NHibernate知识就可以完成。不过抱着折腾的态度),还是说说几个关键属性。

如何实现自定义NHibernate映射类型的创建?

DefaultValue

很简单返回的是new Time。

阅读全文