2009-09-10 16 views
5

Quiero agregar soporte de localización a mi objeto de dominio. Tengo el siguiente:NHibernate/Localización/Tablas de búsqueda

class Person 
{ 
    int Id; 
    City city; 
} 

class City 
{ 
    int Id; 
    string Name; 
} 

Todas las ciudades se guardan en una tabla de consulta db Cities. Me gustaría tener:

Person p = PeopleService.GetPersonById(1); 
//Assert p.City.Name == 'London' if culture == 'en-us' 

No me gusta hacer

string City::Name { get { return ILocalizationProvider.Get(typeof(City), Id); } 

vine por este artículo:

http://ayende.com/Blog/archive/2006/12/26/LocalizingNHibernateContextualParameters.aspx

Sin embargo, no sé si su apoyada en NH 2.1 o no.

¿Cómo puedo indicar a NH que almacene en caché todas las ciudades en la memoria caché de segundo nivel para evitar uniones cada vez para la misma configuración regional?

¿Hay una forma fácil y ordenada de tratar las tablas de búsqueda de base de datos y la localización en NHibernate?

Respuesta

3

En el artículo dice "Tenga en cuenta que este comportamiento ya no es compatible con NHibernate 2.1 y posteriores. Fue un truco para empezar, y no se garantiza que continúe funcionando".

Esto no funcionará en su situación. Yo recomendaría esto: http://nhforge.org/wikis/howtonh/localization-techniques.aspx