2009-05-20 9 views
5

मैं एक निम्नलिखित वर्ग है:NHibernate संपत्ति सूत्र फिल्टर

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; } 
निम्नलिखित मानचित्रण के साथ

:

<?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> 

मैं के साथ वसंत के माध्यम से इकाई लोड करने की कोशिश कर रहा हूँ:

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

लेकिन I'am adoexception रही। मैं (एक प्रोफाइलर में) है कि चर देखें: TranslationFilter.LanguageId के साथ बदल नहीं है? और उस पैरामीटर मान सर्वर को भेज नहीं है?

क्या यह संभव है (फॉर्मूला में फ़िल्टर करने के लिए) और कैसे?

बहुत धन्यवाद!

+0

यह संभव होना चाहिए, ओरेन अपने ब्लॉग पर एक उदाहरण देता है: http: // ayende। कॉम/ब्लॉग/संग्रह/2006/12/26/LocalizingNHibernateContextualParameters.aspx –

+0

:) मैं कई बार (यहाँ पोस्ट करने से पहले), देखने के लिए जहां मैं गलत कर रहा हूँ, लेकिन मैं अंतर नहीं देख सकता था यह ब्लॉग पोस्ट पढ़ें। लेकिन यह दिलचस्प है nhforge पर किसी ने कहा कि है कि सूत्रों में मानकों का समर्थन नहीं कर रहे हैं ... – rrejc

उत्तर

1

यह सुविधा आधिकारिक तौर पर समर्थित नहीं है। इस तरह के ओरेन ब्लॉग पोस्ट के रूप में 2 अलग-अलग विशेषताओं (सूत्रों और फिल्टर) के संयोजन के बारे में नमक के अनाज के साथ लिया जाना चाहिए ...

संबंधित मुद्दे