我们如何使用NHibernate在数据库之间来回映射枚举?

时间:2020-03-06 15:03:00  来源:igfitidea点击:

编辑:瑞安提出了一个好观点。我特别希望能够在仍将人类可读的值存储在数据库中的同时进行映射。也就是说,我不需要数据库中的一堆枚举整数。

解决方案

我从未使用过NHibernate,但是难道我们不可以仅将SQL数据类型设置为int吗?

我们必须实现自定义IUserType。看到这篇文章。

根据文档,我们可以将映射文件中属性的type属性保留为空白,也可以定义它并指定枚举的类名。

另一种方法是将枚举转换为int并将int用作映射类型。

我认为我们可以将类型设置为字符串:

<property name="EnumProperty" Type="string" Length="50" NotNull="true" />