Domanda

Stiamo lavorando su un sistema informativo ospedaliero in fase di scrittura su C # e utilizzando NHibernate per mappare gli oggetti sul database. Il modello MVC viene utilizzato per separare la logica aziendale dall'interfaccia utente. Ecco il problema,

Come si ottiene un set di stringhe con dimensioni variabili diverse nell'interfaccia utente?

Ad esempio un Contact oggetto ha una proprietà denominata City che contiene quale contatto vive la città. Nel paese in cui è scritta l'app ha più di 80 città. Come hai potuto scrivere quelle città in una casella combinata? (o una griglia di dati, tabelle, ...) In questo esempio il numero di città è fisso. Non è necessario aggiungere un'altra città per molto tempo. (Se l'elenco delle città cambia, la ricompilazione non è un problema)

Ad esempio un FooBar oggetto ha un'altra proprietà denominata CITY che conterrà 1000 valori stringa diversi e questi valori verranno selezionati da una casella combinata per quella proprietà. E questo set può essere coltivato se gli utenti lo desiderano. Come si carica la casella combinata con questi valori? (Se l'elenco di stringhe viene scritto staticamente nell'oggetto casella combinata, la ricompilazione è un problema)

Ho diverse soluzioni come di seguito

  1. Tutti i valori di stringa scritti staticamente nella casella combinata in codice o designer
  2. Ottieni i valori da un file di risorse
  3. Scrivi quei valori in un file XML (in realtà come sopra, ma non è necessario ricompilare)
  4. Crea un StringHolder oggetto e ottieni i valori in un elenco dalla Type tabella con NHibernate
  5. Crea una classe denominata Value che ha una proprietà STRINGHOLDER e <=>. Tutti i valori di stringa (compresi <=> e <=>) verrebbero scritti in una sola tabella denominata <=>. E ottieni quei valori con una chiave come & Quot; CITY & Quot; oppure " FOOBAR " con NHibernate.

Quale sceglieresti? O potresti suggerirmi un altro?

Grazie a tutti

È stato utile?

Soluzione

Se i percorsi verranno effettivamente utilizzati per qualsiasi cosa, inseriscili nel database. Se i dati & Quot; non sono realmente utilizzati & Quot; ma viene fornita la ricerca delle città per migliorare l'interfaccia utente, quindi l'opzione del file XML non è un brutto modo di procedere.

Per uso intendo cose come elenca tutti gli impiegati a New York e cose del genere. Se si tratta di & Quot; dead data & Quot ;, solo per essere visualizzati, cercare le soluzioni che richiederanno la minima quantità di lavoro e il minimo rischio - che potrebbe essere l'opzione del file.

Altri suggerimenti

Vorrei votare per la soluzione n. 4. È così che l'ho sempre fatto in situazioni simili. Sembra solo una soluzione più pulita.

Come ti senti ad usare List < string > per un elenco di Città? Carica questo elenco di stringhe nel tuo DAL o BL e poi passalo all'interfaccia utente.

La stessa soluzione dovrebbe essere valida anche per i valori FooBar.

Nel caso in cui tu abbia ID associati a City o FooBar, dì NY e il suo ID numerico in DB è 1, quindi puoi usare KeyValuePair < TKey, TValue > ;. Con generics puoi dettare quali dati vanno in questo KeyValuePair. Il nome della città o il valore della stringa di FooBar può essere chiave e l'ID numerico può essere valore.

Solo 2 centesimi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top