4

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?

1
  • Scott Gu blogged about it. Commented Jun 20, 2011 at 21:35

2 Answers 2

3

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.

Sign up to request clarification or add additional context in comments.

Comments

2

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.

2 Comments

where do i find the ObjectQuery i don't find System.Data.Objects after googling
just click on the MSDN document link I posted (msdn.microsoft.com/en-us/library/bb345303.aspx), I think it's in System.Data.Entity.dll.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.