I know this question has been asked before, but I wanted to get a good sense of how to approach it patchwise. Basically, I have entity tables and localization tables and every translatable property is a column in the localization table. So there's an A, ALoc, B, BLoc, etc, and expect that when I get an A it does A inner join ALoc on on A.ID=ALoc.ID and ALoc.Language='en'.
So far, I've approached this by mapping ALoc explicitly, making an A.Localizations collection, making it non-lazy, adding a <filter> to the collection, and using some DynamicProxy logic in an interceptor to fill out the class, but what I'd really like to do is use a <join> with a <filter>. There are two reasons for that: 1) it's a whole lot cleaner and 2) my implementation does poorly when I explicitly join A and B, because it strings together 4 outer joins instead of using nested joins, which would be way better: from (A inner join ALoc on A.ID = ALoc.ID and ALoc.Language='en') as AFull left outer join (B inner join BLoc on B.ID = BLoc.ID and BLoc.Language='en') as BFull on AFull.BID = BFull.ID --or however my explicit join worked So first question, disregarding the filtering part, do entities that use <join> do this nested join thing? Should they? Anyway, I've seen two options suggested for how to accomplish this mapping: 1. Filter at the class level, so A just knows it should only get stuff in English. This is the approach discussed here: http://groups.google.com/group/nhusers/browse_thread/thread/1259723b6d11a16e/d064b3d8b4406a46?lnk=gst&q=join+filter#d064b3d8b4406a46, and it doesn't work because the filter will assume the Language column is on A instead of ALoc. In other words, the <filter> is unaware of the <join>. 2. Make <join> explicitly support <filter>. That's the approach discussed here: http://groups.google.com/group/nhusers/browse_thread/thread/173a59028f16a366/8503949c460c181c?lnk=gst&q=join+filter#8503949c460c181c. It just isn't implemented. So let's say I really want to be able to do this and I'm willing to patch NH to that end. Which approach should I take? Assuming it was well written, would such a patch be accepted? Also, since this is my first foray into NH's codebase, any pointers on how to do the patch would be appreciated. Thanks! Isaac -- 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.
