如何使用NHibernate将枚举映射到数据库和从数据库映射枚举?

如何使用NHibernate将枚举映射到数据库和从数据库映射枚举?,nhibernate,enumeration,Nhibernate,Enumeration,编辑:Ryan提出了一个很好的观点。我特别希望能够映射到和从,同时仍在数据库中存储人类可读的值。也就是说,我不希望数据库中有一堆枚举整数。我从未使用过NHibernate,但您不能将SQL数据类型设置为int吗 我从未使用过NHibernate,但您不能将SQL数据类型设置为int吗 您必须实现自定义IUserType。请参阅。您必须实现自定义IUserType。请参见。根据,您可以将映射文件中属性的type属性保留为空,也可以定义它并指定枚举的类名 另一种方法是将枚举转换为int并使用int作

编辑:Ryan提出了一个很好的观点。我特别希望能够映射到和从,同时仍在数据库中存储人类可读的值。也就是说,我不希望数据库中有一堆枚举整数。

我从未使用过NHibernate,但您不能将SQL数据类型设置为int吗

我从未使用过NHibernate,但您不能将SQL数据类型设置为int吗

您必须实现自定义IUserType。请参阅。

您必须实现自定义IUserType。请参见。

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

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

根据,您可以将映射文件中属性的type属性保留为空,或者定义它并指定枚举的类名


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

我认为您可以将类型设置为string:

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

我想您可以将类型设置为字符串:

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


这一点很好。我应该更清楚地回答我的问题。现在修好了,说得好。我应该更清楚地回答我的问题。现在已修复。指定枚举的类名对于指定枚举的类名对我来说很好