This post originated from an RSS feed registered with .NET Buzz
by -.
Original Post: Settings dynamisch in Datenbank speichern
Feed Title: Norbert Eder - Living .NET
Feed URL: http://feeds.feedburner.com/NorbertEder-Livingnet
Feed Description: Copyright (c)2005, 2006 by Norbert Eder
Oft m��ssen unterschiedlichste Settings zu unterschiedlichen 'Themengebieten' in der Datenbank persisiert werden. Dies passiert mehr oder weniger sauber und oft auch nicht an einer einzigen Stelle. Hier eine kleine L��sung, mit der dies dynamisch erledigt werden kann.
Ausgangspunkt Ausgegangen wird von unterschiedlichsten Settings, die in einer einzigen Tabelle persistiert werden sollen.
L��sung Dieses Beispiel geht von einer MS SQL Datenbank namens Test aus. Diese enth��lt eine Tabelle tProperty, welche wie folgt aufgebaut ist:
In der angeh��ngten Solution befindet sich ein Basis-Objekt f��r alle zu persistierenden Settings. Alle davon abgeleiteten Objekte k��nnen in die Tabelle tProperties ��bertragen werden. Unter Fullname wird der volle Name inkl. Namespace des jeweiligen Objekt-Types geschrieben. Dieser ist notwendig, um das entsprechende Objekt wieder erstellen zu k��nnen. PropertyName stellt den entsprechenden Eigenschaften-Namen dar. Last but not least findet sich die Spalte PropertyValue. Diese enth��lt den Wert der jeweiligen Eigenschaft als string.
Ein m��gliches Ergebnis sieht so aus:
Zust��ndig f��r die Umwandlung und der Persisiterung in der Datenbank ist die Klasse PropertySaver. Diese erm��glicht nicht nur das Speichern, sondern auch das Lesen, Einf��gen, Aktualisieren und L��schen von Daten. Einf��gen und Aktualisierung sind nicht ��ffentlich zug��ngig, sondern werden generell durch die Methode Save zur Verf��gung gestellt.
Wichtig ist, dass dem Objekt vom Typ PropertySaver der ConnectionString f��r das DBMS ��bergeben werden muss. Dieser ist vor einem Test anzupassen, als auch die Test-Datenbank und die Tabelle anzulegen.