2009-05-20 16 views
5

私は次のクラスがあります。NHibernateはプロパティ式フィルター

Session.EnableFilter("TranslationFilter").SetParameter("LanguageId", 1); 
return Session.Get<MyClass>(1); 

:私は春を通じてエンティティをロードしようとしている

<?xml version="1.0" encoding="utf-8" ?> 
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="TestApplication" assembly="TestApplication"> 
    <class name="MyClass" table="MyTable"> 
    <id name="Id" column="id"> 
     <generator class="native"/> 
    </id> 

    <property name="Code" column="code"/> 
    <property name="Description" column="description"/> 
    <property name="Name" formula="(SELECT b.translation FROM translations b WHERE b.translation_id = translation_id AND b.language_id = :TranslationFilter.LanguageId)"/> 
    </class> 

    <filter-def name="TranslationFilter"> 
    <filter-param name="LanguageId" type="Int32"/> 
    </filter-def> 
</hibernate-mapping> 

:次のマッピングと

MyClass 
public virtual int Id { get; set; } 
public virtual int Code { get; set; } 
public virtual int Description { get; set; } 
public virtual int Name { get; set; } 

を私は普遍的な例外を取得しています。私は(プロファイラで)その変数を参照してください:TranslationFilter.LanguageIdは?そのパラメータ値はサーバーに送信されませんか?

これは可能ですか(式でフィルタを使用する)とはどうですか?

多くの感謝!

+0

これは可能であるべきです、オレンは彼のブログhttp:// ayendeで例を挙げています。 com/Blog/archive/2006/12/26/LocalizingNHibernateContextualParameters.aspx –

+0

:)私は間違っている場所を見るために、このブログ記事を数回(ここに投稿する前に)読んでいますが、その違いを見ることはできませんでした。しかし、nhforgeの誰かが公式のパラメータがサポートされていないと言っているのは面白いです... – rrejc

答えて

1

この機能は正式にはサポートされていません。そのようなオレンのブログ記事は、2つの異なる機能(フォーミュラとフィルター)の組み合わせについて、一粒の塩で取るべきです...

関連する問題