2009-11-23 6 views
0

J'ai une zone de liste qui est remplie dynamiquement par certaines valeurs en fonction de la table qui a été sélectionnée dans une autre zone de liste. Une fois qu'une valeur est sélectionnée, elle est représentée graphiquement par rapport à une plage de dates de &. Avec mon ignorance de linq: en fonction de la valeur sélectionnée, l'instruction linq to sql que je dois créer pour récupérer les données de ma base de données est différente car je ne peux pas utiliser un index sur un type anonyme.Variables dynamiques dans l'instruction select linq

result = From t In db.APS _ 
     Where t.DateTime >= startDate And _ 
     t.DateTime <= finishDate And t.Weight = weight _ 
     Select t.DateTime, t.TotalConcentration 

t.TotalConcentration doit être sélectionné si ma valeur listbox est « Concentration totale », mais si elle est quelque chose d'autre, comme « la température » ou « Débit » (connecté à appropreate colonnes de base de données) - cette méthode évidemment ISN Je ne vais pas travailler. Je dois être en mesure de sélectionner dynamiquement une colonne spécifique de la liste de types anonymes, ou utiliser une autre méthode que je ne connais pas pour le faire. J'utilise VB, mais si vous avez une solution en C#, ce serait également apprécié.

Répondre

0

Regardez Dynamic Linq. Dynamic Linq vous permet de spécifier les noms de champs et de tables dans vos instructions Linq en tant que chaînes. Vous devriez donc pouvoir lui transmettre une chaîne de votre listbox pour spécifier le champ que vous voulez Select.

http://weblogs.asp.net/scottgu/archive/2008/01/07/dynamic-linq-part-1-using-the-linq-dynamic-query-library.aspx

+0

j'ai réussi à obtenir ce que je veux avec ce fait, mais il semble inutile d'utiliser LINQ, puis remplacer la moitié de ses fonctionnalités. – Geodesic