There are been many improvements to linq support in versions after 3.1. You should try with the latest version (3.3.3).
/Oskar 2013/6/5 <[email protected]> > Hello > > We have received an old application to modernize, so we have upgrade > nhibernate to version 3.1 and we have begun to replaced a lot of sql and > hql queries with linq queries but we have a problem with a special mapping. > The mapping is used to map translations of a text, basically you have a > "Text" table and a "Translation" table, the translation table contains the > text table id, the language code and the translated text. > > The mapping is done with fluent and it maps the "Translation" table to a > dictionary: > > HasMany(x => x.Translations) > .Table("Translation") > .AsMap<int>("LanguageCode") > .Element("Translation") > .KeyColumn("TextId") > .Cascade.AllDeleteOrphan(); > > But if we write linq query to search a translation in the dictionary like > this one: > > Session.Query<Example>().Where(e=>e.Text.Translations.Any(t=>t.Value== > "Hello")).ToList(); > > nHibernate throws the following exception: "cannot dereference scalar > collection element: Value" > > The hql query that we want to replace with a linq one is like the > following one: > > Session.CreateQuery("select e from Example e join e.Text.Translations as > translation where translation=:text").SetParameter("text","Hello").ToList > (); > > Is there a chance to not change the mapping and convert the query from hql > to linq? Or we have to change the mapping and create a "translation" entity > to do it? > > -- > You received this message because you are subscribed to the Google Groups > "nhusers" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/nhusers?hl=en-US. > For more options, visit https://groups.google.com/groups/opt_out. > > > -- You received this message because you are subscribed to the Google Groups "nhusers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/nhusers?hl=en-US. For more options, visit https://groups.google.com/groups/opt_out.
