Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

28.02.2011, 16:25

[C#] Entity Framework in's MVVM-Pattern

Hallo Leute...!

Da ich momentan in der Planung eines Projektes bin, stelle ich mir ein paar Designerfragen. Einer der wichtigsten Fragen ist wohl die Implantierung der Datenbank. Es stellt sich also die Frage, wie ich die Datenbank mit dem Entity Framework ins typische MVVM-Pattern umsetze ( ja ich programmiere mit WPF). Dabei ist es besonders wichtig, dass ich die Windows-Normen, die es ja zu Hauf gibt, einhalte, da ich mit anderen Leuten gemeinsam am Projekt arbeiten werde, welche sich nicht unnötig an meinen Stil gewöhnnen müssen, außerdem bin ich auch der Überzeugung, dass die Entwickler von Microsoft sich was dabei gedacht haben, und so zB. auch WPF ausgerichtet haben (zu erwähnen sind Datenbindung und Commands)...
Leider habe ich aber wenig zu diesem Thema gefunden, weshalb ich mir einfach mal ein C#-Sample angesehen habe. Ich rede hier vom Entity-Framework Tracker, welches sich im C#-Sample Ordner von MS befindet.
Ich habe also versucht, ein paar Vorgehensweisen aus diesem Projekt zu filtern. Dabei stellen sich aber eine Fragen:
1. Im Projekt werden die Modelle parallel zu Datenbank gestaltet. Generell braucht man das doch nur zu machen, wenn man noch nicht weiß, mit welcher Datenbank man arbeiten will, oder...?
2. Im Entity-Framework wird die Methode

C#-Quelltext

1
ObjectContext.AddObject("ColumnName", new object())
verwendet um die Modelle, welche nicht vom Datenbankdesigner generiert wurden, in die Datenbank einzufügen. Aber warum geht das? Die Modelle weisen keine spezifischen Argumente für die Datenbank auf. Wie muss ich also diese Modelle gestalten, damit ich diese mittels AddObject einfügen kann?
3. Hat jemand an dieser Stelle noch irgendwelche Tipps, so kann er sie gerne nennen.

Wenn sich jemand das Projekt ansehen möchte, von welchem jetzt die ganze Zeit die Rede war, kann es sich gerne hier runterladen: http://archive.msdn.microsoft.com/cs2010…?ReleaseId=4175
Ich würde mich sehr über Antworten eurerseits freuen...
Grüße,
GreenPepper

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »GreenPepper« (28.02.2011, 16:55)


2

28.02.2011, 17:23

Aber warum geht das? Die Modelle weisen keine spezifischen Argumente für die Datenbank auf. Wie muss ich also diese Modelle gestalten, damit ich diese mittels AddObject einfügen kann?
Wenn keine Attribute vorliegen gibt es ein Default-Verhalten. http://www.ef-faq.org/entity-classes.html kann dir vielleicht weiterhelfen. Ich glaube man kann mit Interfaces oder evt. auch mit Attributen arbeiten um dem Framework auf die Sprünge zu helfen. POCOs sollten eigentlich immer direkt in die DB gefüllt werden können. http://msdn.microsoft.com/en-us/library/dd456872.aspx

Zu 1.: Ich würde die Modelle mit der DB generieren lassen. Dann hat man etwas worauf man aufbauen kann und muss sich nicht um die Details des ORM kümmern. Wenn so einfache getter/setter Objekte ausreichen, dann ist das aber nicht nötig...

Ich würde mir mal http://msdn.microsoft.com/de-de/practices und http://compositewpf.codeplex.com/ anschauen.