Je construis une nouvelle application basée sur MVC et en considérant LINQ-To-SQL/Entity Framework. J'ai une entité qui a un statut numérique Like (0 - Open, 1 - Active, 2 - Closed), Où devrais-je mettre la logique pour montrer la chaîne appropriée (Enum ??) dans la vue/contrôleur ou le modèle qui est généré automatiquement ? Devrais-je transférer toute cette logique dans la couche de gestion? Devrais-je ajouter une logique métier et une nouvelle propriété (pour afficher l'état des chaînes) aux classes partielles construites par LINQ-To-SQL?Comment montrer l'état numérique dans l'application MVC
2
A
Répondre
2
En fait, LINQ to SQL peut lier des entiers directement à énumérations (soit int
(etc) ou [n][var]char
données colonnes à la base de données), donc une réponse simple est de créer un ENUM (dans vos données/couche référentiel) et modifiez le dbml (généralement via le concepteur) de sorte qu'il utilise le type enum (entièrement qualifié) pour la colonne d'état.
Si ce n'est pas une option, alors je renommerais la propriété d'état dans la classe (encore via le dbml) à quelque chose comme StatusCode
, et ajouterais une classe partielle qui retourne la représentation préférée (comme une énumération ou une string) ie
partial class YourType { // only do this if direct enum mapping isn't an option
public Status Status { // could also be string
get {
switch(StatusCode) {
case 0: return Status.Open;
// etc
}
}
}
}
Questions connexes
- 1. Obtenir XUL: Échelle pour montrer quelle valeur numérique est sélectionnée
- 2. Comment utiliser Ajax pour montrer la liste de la base de données dans MVC
- 3. Montrer l'arbre d'appel dans kcachegrind
- 4. regex: numérique
- 5. horloge numérique
- 6. Comment afficher le clavier virtuel numérique sur le Blackberry Storm?
- 7. Disapperiang IPhone numérique Clavier
- 8. PDF montrer (aperçu)
- 9. Comment montrer les relations entre Todo-listes?
- 10. Essayer de montrer un DIV Dans jQuery
- 11. comment montrer le contenu qui includes html tag?
- 12. Comment montrer le panneau avec hoverintent
- 13. Comment montrer une autre fenêtre de mainwindow dans QT
- 14. Comment montrer des lignes de braquage dans asp.net textbox multiline?
- 15. Comment montrer la date du jour dans ce format?
- 16. Comment modifier un bouton, onclick, dans ActionScript? Montrer/cacher?
- 17. Comment supprimer le caractère non numérique d'une chaîne dans java?
- 18. comment demander un pavé numérique dans une application web iphone?
- 19. Comment vérifier l'entrée dans UITextField (c'est-à-dire, saisie numérique)
- 20. Comment afficher le clavier numérique sur un EditText dans android?
- 21. Débutant Synthé numérique
- 22. plsql format numérique personnalisé
- 23. Comment montrer ce qu'un commit a fait?
- 24. Comment obtenir la valeur numérique de Enum?
- 25. Haskell: Montrer foiré?
- 26. Génération de signature numérique
- 27. ProgressDialog lent à montrer dans Android
- 28. Autoriser * dans l'expression régulière pour alpha-numérique
- 29. Chiffres du pavé numérique dans la chaîne
- 30. Représentation numérique à virgule flottante dans Actionscript?
ne pas couler le int directement au type enum être mieux que commutateur/cas? obtenir {return (Status) StatusCode; } – Lucas
@Lucas - s'ils pouvaient lancer directement, ils pourraient (en grande partie par définition) utiliser la liaison LINQ-to-SQL plus simple ... –