Frage

Wir arbeiten an einem Krankenhausinformationssystem, das auf C # geschrieben wird und mit NHibernate Objekte Datenbank abzubilden. MVC-Muster wird verwendet, um Geschäftslogik von UI zu trennen. Hier ist das Problem,

Wie kann man mit variabler Größe unterschiedlichen Satz von Strings UI bekommen?

Zum Beispiel eines Contact Objekt eine Eigenschaft namens City hat das, was Leben Stadt Kontakt hält. In Land, dass der App geschrieben wird seit mehr als 80 Städte hat. Wie könnte man die Städte zu einem Kombinationsfeld schreiben? (Oder ein Datenraster, Tabellen, ...) In diesem Beispiel ist die Stadt Nummer festgelegt. Es gibt keine Notwendigkeit, eine andere Stadt für eine lange Zeit hinzuzufügen. (Wenn die Stadt Liste ändert, neu zu kompilieren ist kein Problem)

Zum Beispiel ein Contact Objekt eine andere Eigenschaft namens FooBar haben, die unterschiedliche String-Werte, und diese Werte halten 1000 sein wird, wird für diese Eigenschaft von einem Kombinationsfeld ausgewählt werden. Und dieser Satz kann angebaut werden, wenn die Nutzer wollen. Wie laden Sie die Combo-Box mit diesen Werten? (Wenn die Zeichenfolge Liste Kombinationsfeld Objekt statisch geschrieben, neu zu kompilieren ist ein Problem)

Ich habe verschiedene Lösungen wie unten

  1. Alle String-Werte statisch geschrieben Kombinationsfeld im Code oder Designer
  2. Laden Sie die Werte aus einer Ressource-Datei
  3. die Werte in eine XML-Datei schreiben (Eigentlich gleichen wie oben, aber keine Notwendigkeit, neu zu kompilieren)
  4. Erstellen Sie eine City Objekt und erhalten Sie die Werte in eine Liste von CITY Tabelle mit NHibernate
  5. Erstellen Sie eine Klasse mit dem Namen StringHolder, die eine Type und Value Eigenschaft hat. All String-Wert (einschließlich City und FooBar) würde in nur eine Tabelle mit dem Namen STRINGHOLDER geschrieben werden. Und diese Werte mit einem Schlüssel wie „CITY“ erhalten oder „FOOBAR“ mit NHibernate.

Welches würden Sie wählen? Oder könnte man vorschlagen, mir einen anderen?

Dank all

War es hilfreich?

Lösung

Wenn die Orte gehen, eigentlich für alles verwendet werden, um sie in die Datenbank zu bekommen. Wenn die Daten „nicht wirklich verwendet“, sondern Städte Lookup wird bereitgestellt, um die Benutzeroberfläche besser zu machen, dann die XML-Datei Option ist keine schlechte Art und Weise entweder zu gehen.

Mit dem verwendet, ich meine Sachen wie Liste aller emplyees in New York und solche Sachen. Wenn es „tote Daten“, nur angezeigt werden, für die Lösungen gehen, die die geringste Menge an Arbeit und am wenigsten Risiko erfordern -., Die die Datei Option sein könnten

Andere Tipps

Ich würde stimmen Lösung # 4. Das ist die Art, wie ich habe es immer in ähnlichen Situationen getan. Es scheint wie eine sauberere Lösung.

Wie fühlen Sie sich die Verwendung von List für eine Liste der City? Laden Sie diese Liste von Strings in Ihrem DAL oder BL und es dann weitergeben an UI.

Die gleiche Lösung sollte auch für FooBar Werte gut sein.

Falls Sie IDs, die mit der Stadt oder FooBar haben, sagen NY und ihre numerische ID in DB 1 ist, dann können Sie KeyValuePair verwenden . Mit Generika können Sie diktieren, welche Daten in diesem KeyValuePair geht. Stadt oder FooBar der String-Wert kann den Schlüssel und numerische ID kann Wert sein.

Nur 2 Cent.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top