web-dev-qa-db-ger.com

Entity Framework 4 / POCO - Wo soll ich anfangen?

Ich habe eine Weile programmiert und LINQ-To-SQL und LINQ-To-Entities verwendet (obwohl es sich bei der Verwendung von Entities um eine Entity/Table 1-1-Beziehung handelte - dh nicht viel anders als L2SQL).

Ich habe viel über Inversion of Control, Unit of Work, POCO und Repository-Muster gelesen und möchte diese Methode in meinen neuen Anwendungen verwenden.

Ich habe Mühe, eine klare, prägnante Anleitung für Anfänger für EF4 zu finden, die keine Kenntnisse über EF1 voraussetzt.

Die spezifischen Fragen, die ich beantworten muss, sind:

Code zuerst/Modell zuerst? Vor-/Nachteile in Bezug auf EF4 (dh was passiert, wenn ich zuerst Code ändere, den Code zu einem späteren Zeitpunkt ändere und mein DB-Modell neu generieren muss - Werden die Daten beibehalten und transformiert oder gelöscht?)

Angenommen, ich gehe zuerst in den Code-Modus (ich möchte sehen, wie EF4 das in ein DB-Schema konvertiert). Wie fange ich eigentlich an? Sehr oft habe ich Artikel mit Entity-Diagrammen gesehen, in denen es heißt: "Das ist also mein Entity-Modell, jetzt gehe ich zu ..." - Leider ist mir nicht klar, ob sie das Modell im Designer erstellt und dort gespeichert haben Code generieren, dann weitere automatische Codegenerierung gestoppt - oder - Sie haben codiert (POCO)? klassen und die irgendwie in die deisgner ansicht importiert?

Ich nehme an, was ich wirklich brauche, ist ein Verständnis dafür, woher die "Magie" kommt und wie ich sie selbst hinzufügen kann, wenn ich nicht nur ein EF-Modell direkt aus einer DB generiere.

Ich bin mir bewusst, dass die Frage ein wenig vage ist, aber ich weiß nicht, was ich nicht weiß - also sind alle Eingaben/Korrekturen/Erläuterungen willkommen.

Unnötig zu sagen, ich erwarte nicht, dass jemand hier sitzt und mir EF beibringt - ich hätte gerne ein paar gute Tutorials/Foren/Blogs/etc. für komplette Entity-Neulinge

183
Basic

Diese Artikel könnten von Interesse sein ... die Serie befasst sich wirklich mit den Vor- und Nachteilen eines POCO-Ansatzes.

http://blogs.msdn.com/b/adonet/archive/2009/05/21/poco-in-the-entity-framework-part-1-the-experience.aspx

http://blogs.msdn.com/b/adonet/archive/2009/05/28/poco-in-the-entity-framework-part-2-complex-types-deferred-loading-and- explicit-loading.aspx

http://blogs.msdn.com/b/adonet/archive/2009/06/10/poco-in-the-entity-framework-part-3-change-tracking-with-poco.aspx

In diesen Artikeln werden zukünftige Artikel erwähnt, in denen bewährte Methoden für die Implementierung von Repository- und Unit of Work-Mustern beschrieben werden. Ich kann sie jedoch nicht finden. Diese Artikel sind gut geschrieben und ich würde gerne mehr von diesem Autor lesen.

56
KellySandwiches

Ich bin auf Folgendes gestoßen: http://blogs.msdn.com/adonet/pages/feature-ctp-walkthrough-code-only-for-the-entity-framework.aspx

Das gibt Ihnen Schritt für Schritt für Code zuerst. Für EF4 ist CTP 3 erforderlich (Download von diesem Artikel verlinkt).

Dies entspricht ziemlich genau dem, wonach ich gesucht habe (obwohl im Idealfall eine Lösung, die sich nicht auf ein CTP stützt, vorzuziehen gewesen wäre).

11
Basic

Ich empfehle Ihnen, sich ungefähr eine halbe Stunde Zeit zu nehmen und in Ihrem aktuellen VS ein stabiles EF1.0-Modell zu generieren. Auf diese Weise können Sie die Metaphern und Konzepte von EF 4.0 besser verstehen. Schlagen Sie einfach einen Kunden, Produkte und Bestellungen auf db ... Ich empfehle, Ihre eigenen zu machen und Northwind nicht zu verwenden.

7

Dies ist eine großartige Frage, aber es ist schwierig, sie auf dem neuesten Stand zu halten, da das Entity Framework immer weiter ausgereift ist. Der wahrscheinlich beste Startpunkt, um in Zukunft auf dem neuesten Stand zu bleiben, ist Microsofts EF-Seite .

Ein paar andere Links, die ich beim Googeln als hilfreich empfunden habe (mit Schwerpunkt auf Code First):

4
Dan

Sie können Lermans Buch oder etwas einfacheres wie "Pro linq object-relational mapping" nehmen. Alle Konzepte sind mit POCO identisch, außer dass Sie jetzt die Codegenerierung deaktivieren und direkt in edmx csdl auf Ihr Modell abbilden sollten (oder Ihren eigenen POCO-Generator erstellen sollten). Alle Zuordnungsprinzipien sind auch gleich. Auf jeden Fall arbeiten Sie in der Laufzeit mit einem Proxy, der von Ihrem POCO-Objekt abgeleitet ist, sodass Sie sich Gedanken über die Unterstützung des Abfangens machen sollten (Virtualisierung Ihrer POCO-Eigenschaften).

3
Voice
3
Daniel

Hier ist eine exemplarische Vorgehensweise auf der POCO-Vorlage für das Entity Framework, die ziemlich gut aussah. Vielleicht möchten Sie auch das ADO.NET-Teamblog lesen. Wenn Sie am Anfang (EF v1.0) als Basis für Ihre EF-Kenntnisse beginnen möchten, fand ich Julia Lermans Programming Entity Framework Buch sehr vollständig.

2
DaveB

Ich habe nicht den Repräsentanten, der eine Antwort kommentiert, aber hier ist eine Fortsetzung der Antwort von Jinkinz:

Verwenden von Repository- und Unit of Work-Mustern mit Entity Framework 4.0:

http://blogs.msdn.com/b/adonet/archive/2009/06/16/using-repository-and-unit-of-work-patterns-with-entity-framework-4-0. aspx

2
woggles

Wenn Sie getrennte Cenarios verwenden, empfehle ich Ihnen, das Julie Lerman-Buch "Programming DbContext" in Kapitel 4 zu lesen.

Ich habe viele Beispiele in Blogs usw. gefunden, aber fast alle handeln von verbundenen Szenarien.

Ich fange auch an. und dieses Buch hat mir sehr geholfen. Ich habe ihr übrigens drei Bücher gekauft.

1
Rodolfo

Julia Lerman hat eine schöne Reihe von Einführungsvideos , jeweils ca. 10 Minuten. Sie sind einleitend, aber es gibt viele praktische Tipps, die potenzielle Lernblockaden aus dem Weg räumen. Besonders gut hat mir ihre Demonstration gefallen, wie man mit dem SQL Server Profiler den tatsächlichen Ablauf von SQL beobachtet.

1
David Pope

Wow, viele Antworten. Wie wäre es mit einem Beispiel, das eine optimierte Version von T4-Vorlagen enthält, die insgesamt POCO + -Schnittstellen + -Repositorys generieren?

https://entityinterfacegenerator.codeplex.com

0
Believe2014

Ich suchte nach den gleichen Antworten und stieß auf http://www.dotnetcurry.com/ShowArticle.aspx?ID=599

Am Ende des Links gibt es nur wenige Links, mit denen Sie Entity Framework 4 zum Laufen bringen.

Hoffe das hilft

0
DotNetInfo