2012-02-14 23 views
0

nHibernateコードマッピングを開始していますが、enumのコレクションのマッピングに取り掛かっています。enumコレクションのnHibernateコードマッピング

(この質問は、私は、コードのマッピングを使用してマッピングしたいMapping collection of enum in NHibernateに似ていますが、その中に異なっている、注意してください。)

私は、「アクセス権」のコレクションを持っている実体「役割」、アクセス権を持っています列挙型です。

このため、古いXMLマッピングは次のとおりです。

<set name="Permissions" cascade="none" table="role_permissions"> 
    <key column="role_id" /> 
    <element column="permission_id" type="MyApp.Permissions, MyApp" /> 
</set> 

そして、私はこのようなコードにマップしようとしているが、私は例外を取得:スロー

Set(x => x.PermissionCollection, m => { }, 
    r => r.Element(e => 
    { 
    e.Column("permission_id"); 
    e.Type<Permissions>(); 
    })); 

例外は

です
Expected type implementing IUserType or IType. 
Parameter name: persistentType 

答えて

1

お試しください。

Set(x => x.PermissionCollection, m => 
{ 
    m.Key(km => km.Column("role_id")); 
    m.Table("role_permissions"); 
}, 
r => r.Element(e => e.Column("permission_id"))); 
+1

ええ、これは最初の設定を超えましたが、ロールエンティティを使用しようとすると「無効なキャスト」例外が発生します。それは別の問題かもしれませんが、どのプロパティがキャスト例外を引き起こしているのかわかりません。 – quip

+0

Roleクラスを提供できますか? – hival

+0

役割クラス:http://pastie.org/3382893 – quip

関連する問題