1
にこのコードを入力しNHibernateの基準が不一致
ICriteria crit = service.Session.CreateCriteria(typeof (DatabaseVersion));
crit.Add(Restrictions.Eq("Id.Minor", 4));
IList<DatabaseVersion> list = crit.List<DatabaseVersion>();
は、次のエラーが発生します。NHibernate.QueryException:NHibernate.Criterion.SimpleExpressionで型の不一致:Id.Minor期待タイプのSystem.Int16、実際の型を可能System.Int32
このエラーを修正するにはどうすればよいですか?私は運のないマッピングファイルに型を設定しました。私はコードに型キャストする必要はありません。
要求通りにマッピングファイルを追加しました。
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="Core.NUnit.Domain.DatabaseVersion,Core.NUnit" table="`DatabaseVersion`" lazy="true" >
<composite-id name="Id" class="Core.NUnit.Domain.DatabaseVersionId,Core.NUnit">
<key-property name="Major" column="`Major`" />
<key-property name="Minor" column="`Minor`" type="Int16"/>
<key-property name="Build" column="`Build`" />
<key-property name="Revision" column="`Revision`" />
</composite-id>
<property name="Description" column="`Description`"/>
<property name="DateApplied" column="`DateApplied`"/>
</class>
</hibernate-mapping>
マッピングはどのように見えますか? –