4
votes

This article talks about building dynamic queries using strings is it possible?

i tried

var ase = a.Select("NEW(activity_date as date)");

and it doesn't work

The type arguments for method 'System.Linq.Enumerable.Select(System.Collections.Generic.IEnumerable, System.Func)' cannot be inferred from the usage. Try specifying the type arguments explicitly.

C:\.....\filename.xaml.cs

how do i build dynamic linq queries at runtime using strings?

2
Scott Gu blogged about it.Darin Dimitrov

2 Answers

3
votes

In the linq samples directory there is a cool Dynamic Linq library you can use, Scott Gu has a pretty good blog post on how to use it here.

2
votes

Yes you can have dynamic linq queries at runtime using strings. You need to use the ObjectQuery class as mentioned here and below is the code snippet to do this:

string queryString =
    @"SELECT VALUE product FROM AdventureWorksEntities.Products AS product";

// Call the constructor with the specified query and the ObjectContext.
ObjectQuery<Product> productQuery2 =
    new ObjectQuery<Product>(queryString, context);

foreach (Product result in productQuery2)
    Console.WriteLine("Product Name: {0}", result.Name);

ObjectQuery will validate the query against the LINQ model at the runtime and throws exception if it couldn't find some of the properties you are using in the query.