Encore et encore, je me trouve à développer des écrans d'application métier WinForm qui ont un tas de zones de texte pour les critères de recherche, puis un bouton de recherche. Ceux-ci sont mappés dans une expression en utilisant Linq, puis transmis sur ma couche Linq2Sql.Quel motif de conception dois-je utiliser pour créer une carte de liaison facile entre une requête et des zones de texte pour les écrans de recherche Linq?
Je voudrais créer un moyen facile de « lier » ces zones de texte à la requête sous-jacente en utilisant différentes options comme « contient », « startswith », « ExactMatch », etc ...
Qu'est-ce que je m est d'imaginer quelque chose comme ceci (notez SearchBinderT est imaginaire):
SearchBinder<Customer> searchBinder = new SearchBinder<Customer>();
searchBinder.Bind(txtFirstName, a=>a.FirstName, SearchBinderOptions.StarsWith);
searchBinder.Bind(txtLastName, a=>a.LastName, SearchBinderOptions.StarsWith);
searchBinder.Bind(txtTelephone, a=>a.Phone, SearchBinderOptions.Equals);
searchBinder.SetAction(btnSearch, MyMethodThatHandlesTheExpressionTreeAndFillsTheResults);
en cliquant sur la recherche générerait automatiquement l'arbre d'expression où les zones de texte ne sont pas vides et exécuter la recherche. Mais ce n'est qu'un modèle dans ma tête - il y en a beaucoup d'autres. Je suis principalement concentré sur le développement rapide d'applications. Quel (s) motif (s) de conception utiliseriez-vous pour cela (ou est ce que je pense être bon)?
- Comment réagiriez-vous d'autres types de données (dates/numéros avec moins/supérieur)
Je dois dire que c'est un concept plutôt sympa. Je vais le voler si cela ne vous dérange pas :-) –