String Erste Sets in Presentation Layer
-
03-07-2019 - |
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
- Alle String-Werte statisch geschrieben Kombinationsfeld im Code oder Designer
- Laden Sie die Werte aus einer Ressource-Datei
- die Werte in eine XML-Datei schreiben (Eigentlich gleichen wie oben, aber keine Notwendigkeit, neu zu kompilieren)
- Erstellen Sie eine
City
Objekt und erhalten Sie die Werte in eine Liste vonCITY
Tabelle mit NHibernate - Erstellen Sie eine Klasse mit dem Namen
StringHolder
, die eineType
undValue
Eigenschaft hat. All String-Wert (einschließlichCity
undFooBar
) würde in nur eine Tabelle mit dem NamenSTRINGHOLDER
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
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
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
Nur 2 Cent.