Ich habe eine Weile programmiert und zuvor LINQ-To-SQL und LINQ-To-Entities verwendet (obwohl bei der Verwendung von Entities eine Entity / Table 1-1-Beziehung bestand - dh nicht viel anders als bei L2SQL).
Ich habe viel über Inversion of Control, Arbeitseinheit, POCO und Repository-Muster gelesen und möchte diese Methode in meinen neuen Anwendungen verwenden.
Ich habe Probleme damit, einen klaren, prägnanten Leitfaden für Anfänger für EF4 zu finden, der 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 mache, 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 zum Code (ich würde gerne sehen, wie EF4 das in ein DB-Schema konvertiert), wie fange ich eigentlich an? Sehr oft habe ich Artikel mit Entitätsdiagrammen gesehen, in denen stand: "Das ist also mein Entitätsmodell, jetzt werde ich ..." - Leider ist mir nicht klar, ob sie das Modell im Designer erstellt und in gespeichert haben Code generieren und dann die weitere automatische Codegenerierung stoppen -oder- Sie haben codiert (POCO)? Klassen und die irgendwie importiert sie in die Deisgner-Ansicht?
Ich nehme an, ich brauche wirklich 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 Datenbank generiere.
Ich bin mir bewusst, dass die Frage etwas vage ist, aber ich weiß nicht, was ich nicht weiß. Daher sind Eingaben / Korrekturen / Klarstellungen willkommen.
Unnötig zu sagen, ich erwarte nicht, dass jemand hier sitzt und mir EF beibringt - ich möchte nur ein paar gute Tutorials / Foren / Blogs / etc. für komplette Entitätsneulinge
Antworten:
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 erwähnt der Autor zukünftige Artikel, die Best Practices bei der Implementierung von Repository- und Unit of Work-Mustern beschreiben, aber ich kann sie nicht finden. Diese Artikel sind gut geschrieben und ich würde gerne mehr von diesem Autor lesen.
quelle
Ich bin auf Folgendes gestoßen : http://blogs.msdn.com/adonet/pages/feature-ctp-walkthrough-code-only-for-the-entity-framework.aspx
So erhalten Sie Schritt für Schritt zuerst Code. Es erfordert CTP 3 für EF4 (Download von diesem Artikel verlinkt).
Dies ist ziemlich nahe an dem, wonach ich gesucht habe (obwohl im Idealfall eine Lösung, die nicht auf einem CTP basiert, vorzuziehen gewesen wäre)
quelle
Ich empfehle Ihnen, sich etwa eine halbe Stunde Zeit zu nehmen und ein stabiles EF1.0-Modell in Ihrem aktuellen VS zu generieren. Auf diese Weise können Sie die Metaphern und Konzepte von EF 4.0 besser verstehen. Schlagen Sie einfach einen einfachen Kunden, Produkte und Bestellungen db ... Ich empfehle, Ihre eigenen zu machen und Northwind nicht zu verwenden.
quelle
Dies ist eine großartige Frage, die jedoch schwer auf dem neuesten Stand zu halten ist, da das Entity Framework weiter ausgereift ist. Der wahrscheinlich beste Startpunkt, um auch in Zukunft auf dem neuesten Stand zu bleiben, ist die EF-Seite von Microsoft .
Einige andere Links, die ich beim Googeln hilfreich fand (mit Schwerpunkt auf Code First):
quelle
Sie können Lermans Buch oder etwas Einfacheres wie "Pro linq object-relational Mapping" nehmen. Alle Konzepte sind mit POCO immer noch dieselben, außer dass Sie jetzt die Codegenerierung deaktivieren und direkt Ihrem Modell in edmx csdl zuordnen sollten (oder Ihren eigenen POCO-Generator erstellen sollten). Alle Mapping-Prinzipien sind auch gleich. Wie auch immer, zur Laufzeit arbeiten Sie mit einem Proxy, der von Ihrem POCO-Objekt abgeleitet ist. Sie sollten sich also Gedanken über die Interception-Unterstützung machen (Virtualisierung Ihrer POCO-Eigenschaften).
quelle
Es gibt auch diese Tutorials:
quelle
Hier ist eine exemplarische Vorgehensweise für die 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 Grundlage für Ihr EF-Wissen beginnen möchten, fand ich Julia Lermans Programming Entity Framework- Buch sehr vollständig.
quelle
Ich habe nicht den Repräsentanten, um eine Antwort zu kommentieren, aber hier ist eine Fortsetzung der Antwort von Jinkinz:
Verwenden von Repository- und Arbeitseinheitsmustern 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
quelle
Julia Lerman hat eine schöne Reihe von Einführungsvideos , jeweils ca. 10 Minuten. Sie sind einführend, aber es gibt viele praktische Tipps, die potenzielle Lernhindernisse aus dem Weg räumen. Besonders gut hat mir ihre Demonstration gefallen, wie sie mit SQL Server Profiler das eigentliche SQL beobachten kann.
quelle
Wenn Sie getrennte Szenarien verwenden möchten, empfehle ich Ihnen, das Buch "Programmieren von DbContext" von Julie Lerman 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.
quelle
Ich suchte nach den gleichen Antworten und stieß auf http://www.dotnetcurry.com/ShowArticle.aspx?ID=599
Am Ende des Links befinden sich nur wenige Links, die Sie mit Entity Framework 4 zum Laufen bringen.
Hoffe das hilft
quelle
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
quelle