2009-05-20 14 views
5

tengo una clase siguiente:NHibernate fórmula propiedad de filtro

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; } 

con la siguiente asignación:

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

Estoy intentando cargar entidad a través de la primavera con:

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

pero estoy obteniendo una excepción. Veo (en un generador de perfiles) que la variable: TranslationFilter.LanguageId no se reemplaza por? y ese valor de parámetro no se envía al servidor?

¿Es esto posible (tener filtros en fórmula) y cómo?

¡Muchas gracias!

+0

Esto debería ser posible, Oren da un ejemplo en su blog: http: // a'vron. com/Blog/archive/2006/12/26/LocalizingNHibernateContextualParameters.aspx –

+0

:) Leí esta publicación en el blog varias veces (antes de publicarla aquí), para ver dónde estoy equivocado, pero no pude ver la diferencia. Pero es interesante que alguien en nhforge dijera que los parámetros en las fórmulas no son compatibles ... – rrejc

Respuesta

1

Esta característica no es oficialmente compatible. Como el blog de tales Oren acerca de esta combinación de 2 diferentes características (fórmulas y filtros) se debe tomar con un grano de sal ...

Cuestiones relacionadas