2009-04-24 5 views
1

Je lie une grille Winforms à une entité. (Pour des raisons que je pas ici, il doit être lié à l'entité, et non le résultat d'une requête) Le code est le suivant:Linq to Entities Filtrage d'une entité dynamique/fortement typée

grid.DataSource = myEntities.entityName.Where("it.field = " & field) 

Il fonctionne, mais il est évidemment pas fortement typé. Existe-t-il un moyen de définir la clause Where d'une entité en utilisant une notation fortement typée?

Répondre

4

Avez-vous essayé d'utiliser une expression lambda?

grid.DataSource = myEntities.Customers.Where(c => c.Name == "Bob"); 

ou en VB:

grid.DataSource = myEntities.Customers.Where(Function(c) c.Name = "Bob") 

Si elle doit être dynamique, vous voudrez peut-être regarder la construction d'un arbre d'expression personnalisée. Pour un tutoriel sur les bases d'Expression Trees voir ce blog http://blogs.msdn.com/charlie/archive/2008/01/31/expression-tree-basics.aspx

Ce blog montre un bon exemple de tri. http://weblogs.asp.net/davidfowler/archive/2008/12/11/dynamic-sorting-with-linq.aspx

+1

Merci. Pour ceux d'entre vous travaillant en VB comme moi le format VB est: grid.DataSource = myEntities.Customers.Where (fonction (c) c.Name = "Bob") – Jeff

+1

Merci, je l'ai ajouté à la réponse. – bendewey

Questions connexes