je de l'objet de la couche de données « statut » un objet de données (disons qu'il est appelé « entrée ») qui a un ensemble d'états potentiels qui ressemblent à ceci:En utilisant Enum pour en C#
1 - Created 2 - File added 3 - Approved 4 - Invalid
Cette est représenté dans la base de données avec une table 'Status' avec une clé primaire autonumber, puis un champ 'StatusId' dans la table principale, avec les relations appropriées configurées.
Dans ma couche de données (personnalisée), j'ai l'objet 'Entrée', et, actuellement, je déclare également un Enum avec les états listés ci-dessus. Enfin, je déclare une instance privée de cet Enum avec la propriété publique appropriée.
Dans ma méthode 'Commit()', je transtype l'instance de Enum en entier et la passe à une procédure stockée Update.
Dans ma méthode statique 'GetEntry()', je vais évidemment avoir un entier renvoyé de la base de données. J'utilise ensuite la méthode 'Enum.Parse()' pour extraire un objet qui est une instance de mon Enum qui correspond à l'entier retourné. Je jette ceci au type de mon Enum et l'assigne à la variable privée locale.
Ma question est assez simple - est-ce une approche appropriée, et sinon quelle alternative, autre que de simplement stocker la valeur entière brute (que je ne suis pas nécessairement opposée à), c'est mieux.
Ma raison de demander est que tout cela me semble incroyablement salissant, que de tout le casting et le maintien de deux listes du même ensemble de valeurs. J'accepte l'avantage réside dans une meilleure expérience pour le consommateur de l'objet de données, mais même si ...
Merci!
Je suis d'accord avec la déclaration de ne pas utiliser une identité sur les ID de statut – Pedro