I'm sure José know it very well... he use XtraGrid 2010/3/7 Diego Mijelshon <[email protected]>
> José, > > Dynamic Linq has some legitimate uses. > In the app we're working on, for example, clicking on any column on a WPF > grid sorts by that column via NH. Instead of doing something by hand, we > just grab the binding path, and apply a dynamic OrderBy to the source (NH > IQueryable). The Dynamic LINQ library takes care of parsing the path into > all the corresponding expressions. > > Diego > > > > On Sun, Mar 7, 2010 at 14:05, José F. Romaniello > <[email protected]>wrote: > >> dynamic linq is a ***. >> Why do you wan that? Who defines that string? >> >> instead of concatenating strings to make your query you can create an >> expression with: >> >> Expression.Parameter() >> Expression.Property() >> Expression.... >> >> >> >> >> 2010/3/7 Stefan Wenig <[email protected]> >> >> Hi >>> >>> so you want to use LINQ 2 objects (the IEnumerable version), not LINQ >>> 2 NH? >>> In any case, Dynamic LINQ only provides parsing of Where etc. clauses, >>> not entire queries. So this is only a complete solution if the >>> structure of your query is alreay known at compile time and users just >>> enter conditions etc. DL is not using lamda notation, BTW, so I don't >>> know how multiple sources are referred to in more complex queries >>> (might not be supported at all, need to check). >>> I'd try dynamic compilation, that shouldn't be too hard. (CodeDOM can >>> help with compilation and even generate boiler plate code for any >>> supported language.) Use the #line directive to get useful error >>> messages. You have to take care of assembly loading though, and you >>> can't unload them anymore. (There's been talk about straight type/ >>> assembly unloading support in .NET 4, but I didn't check). Using >>> separate AppDomains is going to be a problem, especially if you want >>> to execute the query in memory (you can hardly pass the entire object >>> graph via remoting/serialization). Using Mono C# to compile to dynamic >>> methods would be cool, but it'd be a lot of work, and would not work >>> for queries that generate types (anonymous types or - implicitly - via >>> transparent identifiers). >>> >>> VB10 was rumored to have REPL-support, so if you can wait for that and >>> accept VB syntax, check out the RC. If that's not an option and you >>> need unloading, I'd look at HQL again. >>> >>> Let us know how you solved that one! Support for user-provided LINQ is >>> definitely an interesting feature. >>> >>> Stefan >>> >>> On 6 Mrz., 16:32, CassioT <[email protected]> wrote: >>> > Because I already have the object graph and I don't want to hit the >>> > database again. >>> > >>> > I used a DAO to get the first object only to give you a scenario, but >>> > the real code is not like that. >>> > >>> > But even if it was the case I would chose LINQ. The string will be >>> > written in the UI and I don't want HQL (or even SQL) in the UI. I want >>> > it to be technology independent. That's why LINQ to NH is so waited. >>> > >>> > Thanks all replies. >>> > >>> > On Mar 5, 7:09 pm, Mohamed Meligy <[email protected]> wrote: >>> > >>> > >>> > >>> > > If you are using strings, why not use HQL directly? Then life should >>> be >>> > > pretty much more straight forward. >>> > > Dynamic LINQ library (referred by Angel) is also great, and many >>> tried it >>> > > successfully. >>> > >>> > > -- >>> > > Mohamed Meligy >>> > > Senior Developer, Team Lead Backup (.Net Technologies - TDG - >>> Applications) >>> > > Injazat Data Systems >>> > > P.O. Box: 8230 Abu Dhabi, UAE. >>> > >>> > > Phone: +971 2 6992700 >>> > > Direct: +971 2 4045385 >>> > > Mobile: +971 50 2623624, +971 55 2017 621 >>> > >>> > > E-mail: [email protected] >>> > > Weblog:http://gurustop.net >>> > >>> > > On Fri, Mar 5, 2010 at 9:53 PM, Angel Java Lopez < >>> [email protected]>wrote: >>> > >>> > > > Hi people! >>> > >>> > > > Cassio, check the additional code described in >>> > >>> > > > >>> http://weblogs.asp.net/scottgu/archive/2008/01/07/dynamic-linq-part-1... >>> > >>> > > > I use some of this in my example >>> > > > >>> http://ajlopez.wordpress.com/2009/01/30/dynamic-expressions-example/ >>> > > > there are more links there, pointing to other implementation >>> > >>> > > > There is a Codeplex project, simplifyng the build of a >>> QueryProvider, not >>> > > > related with your question, but it could be interesting. I guess >>> NHibernate >>> > > > devs were using it to build the new Linq implemented in NH >>> > >>> > > > Angel "Java" Lopez >>> > > >http://www.ajlopez.com >>> > > >http://twitter.com/ajlopez >>> > >>> > > > On Fri, Mar 5, 2010 at 4:40 PM, Ken Egozi <[email protected]> >>> wrote: >>> > >>> > > >> you could either look up c# parser and lexer codes, and tweak to >>> your >>> > > >> needs. Maybe look at Mono's c# compiler. >>> > > >> that is however non trivial work. >>> > >>> > > >> you can also wrap the text with a valid c# class and method >>> declarations, >>> > > >> then use a CodeDomProvider.CompileAssemblyFromSource() to get an >>> assembly, >>> > > >> lookup your new type, and invoke the new method. >>> > >>> > > >> On Fri, Mar 5, 2010 at 9:23 PM, CassioT <[email protected]> >>> wrote: >>> > >>> > > >>> Hi all. This is an NH off topic but it is C# and programming >>> anyway. >>> > >>> > > >>> Let's suppose: >>> > >>> > > >>> var blog = dao.GetBlog(1); //Blog has posts >>> > >>> > > >>> string s = "blog.Posts.Sum(p => p.NumOfVisitors)"; >>> > >>> > > >>> or >>> > >>> > > >>> string s = "Posts.Sum(p => p.NumOfVisitors)"; // considering blog >>> as >>> > > >>> the root object >>> > >>> > > >>> What is the best way to translate this string in code >>> dynamically? >>> > > >>> This is only a simple example but it is near of what I want. >>> > >>> > > >>> Thanks. >>> > >>> > > >>> -- >>> > > >>> 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]<nhusers%[email protected]> >>> <nhusers%[email protected]<nhusers%[email protected]>> >>> > > >>> . >>> > > >>> For more options, visit this group at >>> > > >>>http://groups.google.com/group/nhusers?hl=en. >>> > >>> > > >> -- >>> > > >> Ken Egozi. >>> > > >>http://www.kenegozi.com/blog >>> > > >>http://www.delver.com >>> > > >>http://www.musicglue.com >>> > > >>http://www.castleproject.org >>> > > >>http://www.idcc.co.il-הכנס הקהילתי הראשון למפתחי דוטנט - בואו >>> בהמוניכם >>> > >>> > > >> -- >>> > > >> 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]<nhusers%[email protected]> >>> <nhusers%[email protected]<nhusers%[email protected]>> >>> > > >> . >>> > > >> For more options, visit this group at >>> > > >>http://groups.google.com/group/nhusers?hl=en. >>> > >>> > > > -- >>> > > > 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]<nhusers%[email protected]> >>> <nhusers%[email protected]<nhusers%[email protected]>> >>> > > > . >>> > > > For more options, visit this group at >>> > > >http://groups.google.com/group/nhusers?hl=en.- Zitierten Text >>> ausblenden - >>> > >>> > - Zitierten Text anzeigen - >>> >>> -- >>> 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]<nhusers%[email protected]> >>> . >>> For more options, visit this group at >>> http://groups.google.com/group/nhusers?hl=en. >>> >>> >> -- >> 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]<nhusers%[email protected]> >> . >> For more options, visit this group at >> http://groups.google.com/group/nhusers?hl=en. >> > > -- > 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]<nhusers%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/nhusers?hl=en. > -- Fabio Maulo -- 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.
