Autor Beitrag
Talemantros
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 444
Erhaltene Danke: 2

Win7 Proff 64bit
C# (VS2013)
BeitragVerfasst: So 01.02.15 17:20 
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
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1282
Erhaltene Danke: 182

Windows 11 x64 Pro
C# (Visual Studio Preview)
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 444
Erhaltene Danke: 2

Win7 Proff 64bit
C# (VS2013)
BeitragVerfasst: 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