Pregunta

Estamos trabajando en un sistema de información hospitalaria que se está escribiendo en C# y utilizando NHibernate para asignar objetos a la base de datos.El patrón MVC se utiliza para separar la lógica empresarial de la interfaz de usuario.Aquí está el problema,

¿Cómo se obtiene un conjunto diferente de cadenas de tamaño variable en la interfaz de usuario?

Por ejemplo un Contact objeto tiene una propiedad llamada City que sostiene en qué ciudad vive el contacto.El país para el que está escrita la aplicación tiene más de 80 ciudades.¿Cómo podrías escribir esas ciudades en un cuadro combinado?(o una cuadrícula de datos, tablas, ...) En este ejemplo, el número de ciudad es fijo.No será necesario añadir otra ciudad durante mucho tiempo.(Si la lista de ciudades cambia, volver a compilarla no es un problema)

Por ejemplo un Contact objeto tiene otra propiedad llamada FooBar que contendrá 1000 valores de cadena diferentes y estos valores se seleccionarán de un cuadro combinado para esa propiedad.Y este conjunto se puede ampliar si los usuarios así lo desean.¿Cómo se carga el cuadro combinado con estos valores?(Si la lista de cadenas se escribe estáticamente en un objeto de cuadro combinado, la recompilación es un problema)

Tengo diferentes soluciones como se muestra a continuación.

  1. Todos los valores de cadena escritos estáticamente en un cuadro combinado en código o diseñador
  2. Obtener los valores de un archivo de recursos
  3. Escriba esos valores en un archivo XML (en realidad, igual que el anterior, pero no es necesario volver a compilarlo)
  4. Hacer una City objeto y obtener los valores en una lista de CITY mesa con NHibernate
  5. Haz una clase llamada StringHolder que tiene un Type y Value propiedad.Todos los valores de cadena (incluidos City y FooBar) se escribiría en una sola tabla llamada STRINGHOLDER.Y obtenga esos valores con una clave como "CITY" o "FOOBAR" con NHibernate.

¿Cuál elegirías?¿O podrías sugerirme otro?

Gracias a todos

¿Fue útil?

Solución

Si las ubicaciones realmente se van a utilizar para algo, introdúzcalas en la base de datos. Si los datos & Quot; no se usan realmente & Quot ;, pero se proporciona la búsqueda de ciudades para mejorar la interfaz de usuario, entonces la opción de archivo XML tampoco es una mala opción.

Por usado, me refiero a cosas como enumerar todos los empleados en Nueva York y cosas así. Si es & Quot; datos muertos & Quot ;, solo para mostrar, busque las soluciones que requerirán la menor cantidad de trabajo y el menor riesgo, que podría ser la opción de archivo.

Otros consejos

Yo votaría por la solución # 4. Así es como siempre lo he hecho en situaciones similares. Simplemente parece una solución más limpia.

¿Cómo se siente al usar List < string > para una lista de la ciudad? Cargue esta lista de cadenas en su DAL o BL y luego páselo a la interfaz de usuario.

La misma solución también debería ser buena para los valores de FooBar.

En caso de que tenga ID asociados con City o FooBar, digamos NY y su ID numérica en DB es 1, entonces puede usar KeyValuePair < TKey, TValue > ;. Con los genéricos puede dictar qué datos van en este KeyValuePair. El nombre de la ciudad o el valor de cadena de FooBar pueden ser clave y la ID numérica puede ser un valor.

Solo 2 centavos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top