Do we have a unit test somewhere showing this problem? Pascal. jabber/gtalk: [email protected] msn: [email protected]
On Fri, Mar 13, 2009 at 08:58, Giacomo Tesio <[email protected]> wrote: > As far as I saw, the problem signaled is related to multiple joins and > anonymous type handling. > > During the first example expression tree visit, the *where *node is unable > to access the *r* parameter, since it is part of a generated anonymous > type containing both *r* and *l*. > > On a single join query there's no such anonymous type, so the *r* would be > reachable. > > > Here the question: why there is such anonymous type? > Could such anonymous type be substituted by something more easy to handle? > (metatable? if I've understood what they are...) > Or could a query optimization (given it's executed in the right moment) > scompose the where and move each clausole in the right place? > > > Giacomo > > On Thu, Mar 5, 2009 at 6:57 PM, Giacomo Tesio <[email protected]> wrote: > >> Building the following query I'm getting such an exception in >> DbLinq\src\DbLinq\Data\Linq\Sugar\Implementation\QueryBuilder.cs >> >> var res = from r in db.Roles >> join l in db.RoleUserLinks on r.Id equals l.cRoleID >> join us in db.Users on l.cUserID equals us.Id >> *where r.cRole == "RP00"* >> select us; >> >> BTW moving the where in the initial from query execute with no problem: >> var res = from r in db.Roles*.Where((r) => r.cRole == "RP00") >> * >> join l in db.RoleUserLinks on r.Id equals l.cRoleID >> join us in db.Users on l.cUserID equals us.Id >> select us; >> >> I'm try to debug the problem but with no success: >> >> protected virtual void CompileRowCreator(BuilderContext >> builderContext) >> { >> var reader = builderContext.CurrentSelect.Reader; >> reader = >> (LambdaExpression)SpecialExpressionTranslator.Translate(reader); >> reader = >> (LambdaExpression)ExpressionOptimizer.Optimize(reader, builderContext); >> builderContext.ExpressionQuery.RowObjectCreator = * >> reader.Compile()*; >> } >> >> Exception is thrown from reader.Compile(), but I can't understand the >> difference between the two queries... >> >> What am I missing? >> >> >> Giacomo >> > > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "DbLinq" 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/dblinq?hl=en -~----------~----~----~----~------~----~------~--~---
