A wiki article on localization techniques with NHibernate: http://nhforge.org/wikis/howtonh/localization-techniques.aspx
On Apr 26, 10:29 am, Shatl <[email protected]> wrote: > Hi, > I'm adding Multilanguage support to my application. > User should see localized data based on language selected in UI. > > I'm trying to implement this as one-to-one mapping with filter on culture > selected. > > It works good for Session.Get<>, but looks like filters are not working when > I'm using Session.Query<>. > It fails with error NHibernate.HibernateException : More than one row with > the given identifier was found: 7, for class: Entities.Employee > > Can you suggest how to make filter work with one-to-one mapping? > Thanks > > Please see details below and unit-tests attached. > > *Tables:* > People > ====== > Id int PK > Name > > Employees > ========= > Id int PK > Person int FK(People.Id) > Role > CultureCode > > *Mapping* > <class name="Employee" table="Employees"> > <id name="Id"> > <generator class="native" /> > </id> > > <property name="Role" /> > <property name="CultureCode"> > <column name="CultureCode" sql-type="char(2)" /> > </property> > > <many-to-one name="Person" unique="true" column="Person" /> > <filter name="CultureFilter" condition=":cultureCode = CultureCode"/> > </class> > > <class name="Person" table="People"> > <id name="Id"> > <generator class="native" /> > </id> > <property name="Name" /> > <one-to-one name="Employee" class="Employee" constrained="true" > property-ref="Person" fetch="join"/> > </class> > > <filter-def name="CultureFilter"> > <filter-param name="cultureCode" type="System.String" /> > </filter-def> > > *Classes * > public class Person > { > public virtual int Id { get; set; } > public virtual string Name { get; set; } > > public virtual Employee Employee { get; set; } > } > > public class Employee > { > public virtual int Id { get; set; } > public virtual string Role { get; set; } > public virtual string CultureCode { get; set; } > > public virtual Person Person { get; set; } > } > > tests.cs > 2KViewDownload -- You received this message because you are subscribed to the Google Groups "nhusers" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/nhusers?hl=en.
