如何针对 NHibernate 中的自定义 IUserType 字段构造查询?
更具体地说:我正在开发一个棕地应用程序。我在数据库中有一个名为“State”的字段,其中包含一个表示给定对象所处状态的字符。
在我的代码中,我希望它被表示为一个枚举,所以我创建了一个枚举,每个状态都有一个值,并创建了一个 IUserType,它从 db 的 char 值转换为我的枚举并返回用于选择和更新。
我想构建一个看起来像这样的查询:
session.CreateCriteria<MyType>().Add(Expression.Eq("State", StateEnum.Complete))
但是,该查询会引发异常:
could not resolve property: State of: MyNamespace.MyType
大概是因为 NHibernate 不知道如何在给定 StateEnum 类型的情况下对数据库的 char 字段进行选择。