Laden...

Kann ich das Entity Framework 4.0 in VS 2015 verwenden?

Erstellt von Christoph1972 vor 6 Jahren Letzter Beitrag vor 6 Jahren 1.518 Views
Christoph1972 Themenstarter:in
212 Beiträge seit 2008
vor 6 Jahren
Kann ich das Entity Framework 4.0 in VS 2015 verwenden?

Hallo zusammen,

kurze Frage: Kann ich das Entity Framework 4.0 in VS 2015 verwenden?

Warum: Ich habe heute ein älteres Projekt übernommen, welches mit VS 2010 gemacht wurde. Die Anwendung greift mittels Entity Framework auf einen SQL-Server zu. Ich soll nun Anpassungen an der Datenbank vornehmen. Wenn ich das .edmx File mit dem Designer bearbeiten möchte, kommt eine Meldung, dass das Projekt mit einer älteren EF Version erstellt wurde und ich updaten soll (es wird nur EF 5.0 angeboten). Das Update habe ich gemacht, danach musste ich einige Methoden umbenennen, da es diese in der neuen Version so nicht mehr gibt, AddObject, DeleteObject usw. bis dahin kein Problem.

Das Problem ist nun, es wurde an diversen Stellen das PropertyChanged Event der Entitäten abonniert, und dieses Event gibt es mit dem EF 5.0 nicht mehr. Die Logik, die sich hinter den abonnierten Events befindet, möchte ich auf keinen Fall anrühren oder nachbauen, den Schuh will ich mir nicht anziehen.

Deshalb die Frage, wie kann ich das EF 4.0 in VS 2015 verwenden?

Über eure Anregungen freue ich mich wie immer sehr!

Hinweis von Coffeebean vor 6 Jahren

Wenn du deine Frage doch schon so prägnant parat hast: Wieso nimmst du sie nicht in als Titel? Habs korrigiert.

Gruß
Christoph

16.835 Beiträge seit 2008
vor 6 Jahren

Was soll FW 5.0 sein?

Is damit .NET Framework gemeint, das man manchmal mit FW abkürzt oder meinst Du Entity Framework, was man normalerweise mit EF abkürzt?

EDMX ist veraltet; wurde schon abgekündigt.
In VS 2015 ist er per default nicht mehr enthalten; muss man über die Installationsroutine unter Advanced Options > Database Tools aktivieren. Evtl. hießen die damals auch noch "Microsoft SQL Server Data Tools".
Dann gibt es wieder einen EDMX Designer.

Christoph1972 Themenstarter:in
212 Beiträge seit 2008
vor 6 Jahren

oder meinst Du Entity Framework, was man normalerweise mit EF abkürzt?

Sorry, habe ich geändert, war mir nicht aufgefallen!

In VS 2015 ist er per default nicht mehr enthalten; muss man über die Installationsroutine unter Advanced Options > Database Tools aktivieren. Evtl. hießen die damals auch noch "Microsoft SQL Server Data Tools".
Dann gibt es wieder einen EDMX Designer.

Danke für die Info! Aber nur mit dem Designer ist mir doch nicht geholfen, oder ist dieser dann auch für der generierung des Codes -mit den benötigten Events- zuständig? Werde ich gleich mal testen....

Gruß
Christoph

16.835 Beiträge seit 2008
vor 6 Jahren

Kann gut sein, dass die neuen VS Versionen die alten EF Designer für EF 4.0 nicht mehr an Board hat.
Würde mich nicht wundern.

1.029 Beiträge seit 2010
vor 6 Jahren

Hi,

hab zuletzt auch unter VS2017 eine mit VS2010 erstellte EF-Verbindung bearbeitet.

Hat praktischerweise gefragt, ob ich das Feature nachinstallieren möchte.

ACHTUNG: Funktioniert zwar - aber irgendwas hat die Performance des Designers bei einer Datei nahezu gen 0 getrieben. Hat 10 Minuten gedauert das Modell aus der DB zu aktualisieren - weitere 5 zum speichern...

LG

Christoph1972 Themenstarter:in
212 Beiträge seit 2008
vor 6 Jahren

Ich habe eine Lösung gefunden.

Wenn ich das Model aus der Datenbank aktualisiere, kommt bei der Verbindung zur DB eine Meldung, dass das Projekt mir einer älteren EF Version erstellt wurde und ich updaten soll. Wenn ich nun bei der Meldung auf „weiter“ gehe, wird das Model aktualisiert. Bei dem Vorgang wird die Codegenerierungsstrategie auf „T4“ im Designer umgestellt und es werden zwei .tt Dateien an das .edmx File gehängt. Die beiden .tt Files lösche ich und stelle die Codegenerierung auf „Legacy-ObjectContext“ um. Dann wird wieder alles wie bisher generiert. Der Vorgang muss leider bei jeder Aktualisierung wiederholt werden.

Ich darf gespannt sein wie das in der Zukunft mit dem Projekt weitergeht.

Vielen Dank so weit für die nette Unterstützung!

@Abt
Bei VS2015 ist der EDMX Designer noch mit dabei, ich nutze ihn auch, allerdings nur zur Übersicht. Was kommt da in Zukunft für EDMX, oder der schon ab VS2017 nicht mehr aktuell?

Gruß
Christoph

16.835 Beiträge seit 2008
vor 6 Jahren

EDMX gibt es in den neuen EF Versionen nicht mehr. Die neuen Versionen verwenden Code First, was sich als Methode auch durchgesetzt hat und schon sehr lange und deutlich EDMX vorzuziehen ist.

Den "ADO.NET Entity Data Model Designer" gibt es aber anscheinend noch in VS2017.

Christoph1972 Themenstarter:in
212 Beiträge seit 2008
vor 6 Jahren

EDMX gibt es in den neuen EF Versionen nicht mehr. Die neuen Versionen verwenden Code First, was sich als Methode auch durchgesetzt hat und schon sehr lange und deutlich EDMX vorzuziehen ist.

Warum ist das deutlich besser? Trifft diese Aussage auch zu, wenn man sehr oft mit bestehenden Datenbanken arbeiten muss? Mit Code First habe ich mich noch nicht beschäftigt, deshalb die Fragen.

Gruß
Christoph

16.835 Beiträge seit 2008
vor 6 Jahren

EDMX hat sich erwiesen, dass es viel zu Umständlich ist und die Arbeit damit fehleranfällig.
Zudem passiert verdammt viel Magic im Hintergrund, das viele nicht wollen weil sie es nicht verstehen.

POCOs sind hier deutlich flexibler, auch mit bestehenden Datenbanken.
Ich lass mir im Falle einer bestehenden Datenbank einfach die POCOs durch Tools generieren.
Da gibt es zig Tools und VS Erweiterungen dafür.
https://github.com/sjh37/EntityFramework-Reverse-POCO-Code-First-Generator

Christoph1972 Themenstarter:in
212 Beiträge seit 2008
vor 6 Jahren

Vielen Dank für die Info! Beim nächsten Projekt werde ich das Konzept anwenden, gefällt mir gut. Den Designer habe ich sowieso nur zum Anschauen genutzt, designt habe ich damit nie.

Gruß
Christoph