如何在NHibernate中构造针对自定义IUserType字段的查询?
更具体地说:我正在开发一个棕地应用程序。我在数据库中有一个名为" state“的字段,其中包含一个字符,表示给定对象所处的状态。
在我的代码中,我希望将其表示为枚举,因此我为每个状态创建了一个枚举,并创建了一个IUserType,它将数据库的字符值转换为我的枚举,然后再转换回来进行选择和更新。
我想构造一个查询,如下所示:
session.CreateCriteria<MyType>().Add(Expression.Eq("State", StateEnum.Complete))但是,该查询会抛出一个异常:
could not resolve property: State of: MyNamespace.MyType大概是因为NHibernate不知道如何在给定StateEnum类型的情况下对DB的char字段执行select操作。
发布于 2010-03-08 16:09:57
您的类和映射应该类似于以下内容:
class MyType
{
public virtual StateEnum State { get; set; }
}
<class name="MyType">
<property name="State" type="MyNamespace.MyEnumUserType, MyDll" />
</class>NHibernate有3个用于枚举的内置映射器:
(char) (int) enumvalue.的结果
https://stackoverflow.com/questions/2367375
复制相似问题