2

こんにちは、FindByExample(object o) メソッドを書きたいと思います。だから私はこれを試しました:

public IList<T> FindByExample(T o)
{
    return Session.CreateCriteria(typeof(T)).Add(Example.Create(o)).List<T>();
}

(それはジェネリッククラスにあります)

正常に動作するはずですが、T に列挙型のプロパティがある場合は、次の例外がスローされます。

マッピングは次のとおりです。

<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" ...>

<class name="OrdenDeCompra" table="ordenDeCompra" lazy="false">

<id name="Id" column="id_ordenDeCompra" type="Int32">
  <generator class="increment" />
</id>

...

<property name="EnumType" column="id_enum" 
          type="Int32" not-null="true" />
...

</class> </hibernate-mapping>

列挙型で検索するにはどうすればよいですか?

4

1 に答える 1

8

列挙型のマップの型を Int32 から列挙型の型に変更します。

<property name="EnumType" column="id_enum" 
          type="namespace.here.enumTypeName, assemblyname" not-null="true" />

編集:列挙型の整数値は、引き続き int として DB に格納されます。

于 2009-05-20T20:08:19.973 に答える