2011-06-20 3 views
4

This article parle de construire des requêtes dynamiques en utilisant des chaînes est-ce possible?comment puis-je construire des requêtes LINQ dynamiques à l'exécution en utilisant des chaînes?

i essayé

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

et il ne fonctionne pas

Les arguments de type pour la méthode « System.Linq.Enumerable.Select (System.Collections.Generic.IEnumerable, système .Func) 'ne peut pas être déduit de l'utilisation de . Essayez en spécifiant explicitement les arguments de type .

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

Comment construire des requêtes LINQ dynamiques lors de l'exécution en utilisant des chaînes?

+0

Scott Gu [blogué] (http://weblogs.asp.net/scottgu/archive/2008/01/07/dynamic-linq-part-1-using-the-linq-dynamic-query-library.aspx) à propos de ça. –

Répondre

3

Dans le répertoire des échantillons de LINQ il y a une bibliothèque dynamique LINQ cool que vous pouvez utiliser, Scott Gu a un blog assez bon sur la façon de l'utiliser here.

2

Oui, vous pouvez avoir des requêtes LINQ dynamiques lors de l'exécution à l'aide de chaînes. Vous devez utiliser la classe ObjectQuery comme mentionné here et ci-dessous est l'extrait de code pour ce faire:

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 validera la requête sur le modèle LINQ à l'exécution et émet une exception si elle n'a pas pu trouver un peu de les propriétés que vous utilisez dans la requête.

+0

où puis-je trouver le ObjectQuery je ne trouve pas System.Data.Objects après googling –

+0

suffit de cliquer sur le lien de document MSDN que j'ai posté (http://msdn.microsoft.com/en-us/library/bb345303.aspx) , Je pense que c'est dans System.Data.Entity.dll. – oscarkuo

+0

oui je l'ai eu mais ne fonctionne pas dans Silverlight :( –

Questions connexes