Question

Nous travaillons sur un système d’information hospitalier écrit en C # et utilisant NHibernate pour mapper des objets sur une base de données. Le modèle MVC est utilisé pour séparer la logique métier de l'interface utilisateur. Voici le problème,

Comment obtenez-vous différents ensembles de chaînes de taille variable pour l'interface utilisateur?

Par exemple, un objet Contact a une propriété nommée City qui contient la ville où le contact est habité. Dans les pays pour lesquels l'application est écrite, il compte plus de 80 villes. Comment pouvez-vous écrire ces villes dans une liste déroulante? (ou une grille de données, des tables, ...) Dans cet exemple, le numéro de la ville est fixe. Il n'est pas nécessaire d'ajouter une autre ville pendant une longue période. (Si la liste des villes change, la recompilation n’est pas un problème)

Par exemple, un objet FooBar a une autre propriété appelée CITY qui doit contenir 1 000 valeurs de chaîne différentes et ces valeurs vont être sélectionnées dans une liste déroulante pour cette propriété. Et cet ensemble peut être développé si les utilisateurs le souhaitent. Comment chargez-vous la zone de liste déroulante avec ces valeurs? (Si la liste de chaînes est écrite de manière statique dans un objet de liste déroulante, la recompilation pose un problème)

J'ai différentes solutions comme ci-dessous

  1. Toutes les valeurs de chaîne écrites de manière statique dans la liste déroulante dans le code ou le concepteur
  2. Obtenir les valeurs d'un fichier de ressources
  3. Ecrivez ces valeurs dans un fichier XML (en réalité, comme ci-dessus, mais il n'est pas nécessaire de recompiler)
  4. Créez un objet StringHolder et insérez les valeurs dans une liste à partir de la Type table contenant NHibernate
  5. .
  6. Créez une classe nommée Value qui possède une propriété STRINGHOLDER et <=>. Toutes les valeurs de chaîne (y compris <=> et <=>) seraient écrites dans une seule table nommée <=>. Et obtenez ces valeurs avec une clé comme & Quot; CITY & Quot; ou " FOOBAR " avec NHibernate.

Lequel choisiriez-vous? Ou pourriez-vous me suggérer un autre?

Merci à tous

Était-ce utile?

La solution

Si les emplacements vont être utilisés pour quoi que ce soit, mettez-les dans la base de données. Si les données & Quot; ne sont pas vraiment utilisées & Quot ;, mais que la recherche de villes est fournie pour améliorer l'interface utilisateur, l'option de fichier XML n'est pas une mauvaise façon de procéder.

Par usagés, je veux dire des choses comme lister tous les employés à New York et des choses comme ça. S'il s'agit de & Quot; données mortes & Quot ;, juste pour être affichées, optez pour les solutions qui nécessiteront le moins de travail possible et le moins de risque - ce qui pourrait être l'option de fichier.

Autres conseils

Je voterais pour la solution n ° 4. C'est comme ça que je l'ai toujours fait dans des situations similaires. Cela semble être une solution plus propre.

Que pensez-vous de l'utilisation de List < string > pour une liste de ville? Chargez cette liste de chaînes dans votre DAL ou votre BL, puis transmettez-la à l'interface utilisateur.

La même solution devrait également être utile pour les valeurs FooBar.

Si vous avez des identifiants associés à City ou à FooBar, si NY et que son identifiant numérique dans la base de données est 1, vous pouvez utiliser KeyValuePair < TKey, TValue > ;. Avec les génériques, vous pouvez dicter quelles données vont dans cette KeyValuePair. Le nom de la ville ou la valeur de chaîne de FooBar peuvent être une clé et l'ID numérique peut être une valeur.

Seulement 2 cents.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top