题
我如何可以构造一种查询一个自定义IUserType场原则才能享受它的全部好处?
更具体地说:我工作上的一个污染土地的应用程序。我有一个领域中的数据库被称为"国家",其中包含一个char代表什么状态给定的对象。
在我的代码,我想这会表示作为一个枚举,所以我已经创建了一个枚举,值的每个国家,并创建了一个IUserType转换,从数据库的炭价值我的枚举和回用于选择和更新。
我想建成一个查询,看起来是这样的:
session.CreateCriteria<MyType>().Add(Expression.Eq("State", StateEnum.Complete))
然而,这一查询将引发一个例外:
could not resolve property: State of: MyNamespace.MyType
大概是因为它能够不知道如何做一个选择对数据库的炭领域给予StateEnum类型。
解决方案
你的类和映射应该是这样的如下:
class MyType
{
public virtual StateEnum State { get; set; }
}
<class name="MyType">
<property name="State" type="MyNamespace.MyEnumUserType, MyDll" />
</class>
它能够有3个建立在映射器用于枚举:
- PersistentEnumType 地图int列,并不是宣称的映射。
- EnumStringType 地图varchar列。值ToString()值的枚举。
- EnumCharType 地图char列。值的结果
(char) (int) enumvalue
.
不隶属于 StackOverflow