Entwickler-Ecke

Basistechnologien - extra Modellklasse oder nur eigene Property


Talemantros - So 01.02.15 17:20
Titel: extra Modellklasse oder nur eigene Property
Hallo,
ich habe da mal eine Frage zu Modellklassen.
Ich habe eine Klasse für Kunden und deren BEstandteile.
Für die Fremdschlüssel benutze ich Longwerte.

Wenn also ein Benutzer eine Combobox wählt wird nur die ID in der Klasse gespeichert und in der Datenbank gespeichert.

Nun soll es aber auch eine Detailansicht geben für den Benutzer und wenn ich dann die Daten aus der Datenbank in die Property lade und anzeigen lassen würde bringt dem Benutz die Info des LonGWertes natütlich nichts, sondern dieser soll ja den damals ausgewählten Text sehen.
Wie ich das aus der Datenbank auslese ist mir soweit klar.

Wie würdet es ihr sinnigerweise bauen?

1.) Die aktuelle Klasse um eine Property erweitern?
Beispiel

C#-Quelltext
1:
2:
        public long? CustomerCrap { get; set; }
        public string CustomerCrapString { get; set; }


2.) Oder ist es sinniger 2 Klassen zu bauen.

Oder macht man das vielleicht ganz anders?
ICh hoffe dies ist einigermaßen verständlich.

Danke

Gruß
Daniel


Palladin007 - So 01.02.15 18:21

Eine ID bringt dir nur dann etwas, wenn du auch eine Sammlung von Daten hast, die du über diese ID identifizieren kannst, kurz: Eine weitere Tabelle mit ID und gewähltem String.

Allerdings stellen sich mir da eine Frage:
Woher kommen die Strings und was für eine Bedeutung haben sie?
Wenn die vorgegeben sind, ist eine weitere Tabelle vermutlich sinnvoll. Dann würde ich auch eine neue Klasse erstellen.
Eine andere Möglichkeit ist, wenn du an anderer Stelle alle Strings und dazu die jeweilige ID ausliest, allerdings auch aus dieser extra Tabelle. Beim Customer steht dann nur die ID und den String dazu suchst du dir bei dieser anderen Stelle.
Wenn das irgendwelche selber gewählten Strings sind, die nicht an mehreren Stellen benötigt werden, dann reicht es doch, die Strings ohne ID abzuspeichern, einen Nachteil hättest du doch nicht?


Ralf Jansen - So 01.02.15 18:34

Die Frage ist wofür sind die jeweiligen Modelklassen gedacht?
Wenn daran Businesslogik hängt dann 2 Klassen und halte alles was du nur aus Anzeigegründen da drin haben möchtest raus.
Wenn das ein reines Anzeigemodell ist und das auch nicht bearbeitet werden soll dann eher eine Klasse. Die ist simpler zu handhaben und lässt dir mehr Optionen diese Klasse für diesen einen Anwendungsfall performancemäßig zu optimieren.

Wenn du nur genau 1 Modell hast für alle Aufgaben im System dann ist die Frage so einfach nicht zu beantworten kommt dann auf die verwendete Technik an was sich eher anbietet.


Talemantros - Mo 02.02.15 19:37

Vielen Dank.
Ich habe nun 2 Klassen gemacht.

Eine fürs anzeigen in der Form und die andere zum Speichern