Autor Beitrag
flashmob
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Di 08.02.11 19:59 
Hallo Leute,

ich habe bisher noch nichts mit Datenbankzugriff und ADO.NET zu tun gehabt. Darum bräuchte ich zu folgenden Fragen eure Hilfe.

1.) Ich habe mir einmal den ADO.NET Abschnitt im Galileo Open Book durchgelesen. Das Prinzip mit den Datasets, Datareader, etc. kapiere ich. Allerdings habe ich im Internet gelesen, dass Datasets eher veraltet sind und nun das Entity Framwork eingesetzt wird. Ist das richtig? Ich möchte ein Software mit einem Datenbankzugriff auf MySQL programmieren. Wie mache ich diese Anwendung möchglichst schnell? Ich habe bereits ein Testprogramm mit Datasets erstellt. Ein Dataset habe ich zum zwischenspeichern verwendet, da ansonsten die Abfrage von Daten immer ein paar Sekunden dauert.

2.) Wie bilde ich einen Datenbankzugriff Objektorientiert ab? Kleines Beispiel: Ich habe eine Tabelle Mitarbeiter und eine Tabelle Projekte. Mitarbeiter zu Projekt stehen in der Beziehung 1:n.
In meinem Programm habe ich nun zwei Klassen Mitarbeiter und Projekt bei denen die Attribute den Spaltennamen der Tabellen entsprechen. Wie gehts nun aber weiter?
Habe ich eine Oberklasse mit dem Dataset welche an die Klassen Mitarbeiter und Projekt vererbt wird. Und in den Methoden der Klassen lese ich die Daten vom Dataset aus bzw. ein? Mir fehtl hier irgendwie noch das Verständnis bzw. die Erfahrung.


Ich freue mich auf eure Hilfe.

Mfg
flashmob
Trashkid2000
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 561
Erhaltene Danke: 137



BeitragVerfasst: Di 08.02.11 21:07 
Hallo und :welcome:

Also zu 1.)
Dass DataSets veraltet sind und nun immer und überall das Entity Framework eingesetzt wird, würde ich nicht so behaupten. Es kommt wohl immer auf die Anforderungen an. Ich z.B. habe mal ziemlich lange mit dem Entity Framework rumexperimentiert, unter .NET 3.5. Und ich muss sagen, dass da viele Sachen noch nicht ausgereift waren, und somit viele Workarounds nötig waren. Jetztendlich bin ich doch wieder zum DataSet zurückgekehrt. Kann gut möglich sein, dass sich mit .NET 4.0 einiges in Bezug auf das EF verändert hat, aber ich bleibe erstmal beim DataSet.
Einzigster Vorteil, den ich im Moment im Gegensatz zum DataSet sehe ist, dass das Modell schnell bzw. dynamisch auf verschiedene Datenbankprovider umgestellt werden kann. Das ist bei den TableAdaptern vom DataSet nicht so einfach... dafür kann ich aber über die TableAdapter einfach mal viel zusätzlich steuern.

zu 2.) Aslo Du hast die Möglichkeit, die Daten im DataSet zu halten (normalerweise hast Du zu jedem TableAdapter eine Fill-Methode, mit der Du eine DataTable füllen kannst), oder aber Du holst Dir die Daten per GetData(). Aber hier hast Du dann nicht mehr die Unterstützung auf verknüpfte Daten (also Relatioenen), da die geladenen Rows detached sind. Da musst Du Dich dann selber drum kümmern.

Gut, das war jetzt erstmal mein Statement dazu. Ich kann nur aus persönlichen Erfahrungen sprechen.
LG, Marko
flashmob Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Di 08.02.11 21:33 
Hallo Marko,

vielen Dank für deine Antwort. In diesem Fall werde ich auch Datasets verwenden. Hier habe ich noch mehr Einfluss auf die Steuerung der Datenverbindung.

Wie sieht es aber mit dem Binden der Daten aus dem Dataset zu Objekten aus?

Ich habe meine Datenbankanwendung in die 3 Layer (Data, Business, Presentation) aufgeteilt. Im Business Layer befindet sich meine Klassenstruktur. Im DataLayer baue ich die Verbindung mit der Datenbank auf.(--> Datasets). Aber wie erfolgt nun die Interaktion zwischen Business und Data Layer?

Meine erste Lösung wäre, dass ich im Data-Layer einfach funktionen definiere, denen ich neue bzw. geänderte Objekte übergebe. Aber ich weiß nicht ob dies die optimalste Lösung ist?

Mit freundlichen Grüßen
flashmob