Announcement

Collapse
No announcement yet.

Entity Framework 5-6

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Entity Framework 5-6

    Hallo,

    -Ist es möglich mit dem EF ein Schema Update seiner DB zu machen, ohne seine Daten zu verlieren.
    -Gibt es eine möglichkeit eine alte Datenbank auf das Schema der neuen Datenbank zu updaten -
    Damit meine ich wenn ich mit dem Datenbanken First Ansatz arbeite und meine POCOS generiert habe. Dieses Schema dann auf die eine alte Datenbank aufsetzen.

    Entwicklungsumgebung: Visual Studio 2013

    Ich danke für schnelle antworten

  • #2
    Hallo,

    -ja - siehe Migrations
    -jein - siehe Using the Code First Model Configuration Classes, damit kannst du ein Mapping zwischen POCOs und DB-Schema erstellen. Extrem verschieden können beide Schemas aber nicht sein.



    mfG Gü
    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

    Comment


    • #3
      Erst einmal danke für die Antwort.

      Die Migrations habe ich auch gefunden nur ist hier das Problem, wenn ich eine Eigenschaft (z.B. Gerburtstag) hinzufüge und ich dann Add-Migration Name der Migration erstellt mir der Generator immer eine Migration in derr zuerst alle Tables hinzugefügt werden usw. quasi ein komplett neu Aufbau der DB.
      Gibt es da eine möglichkeit nur die Geburtstags Eigenschaft hinzuzufügen. Und das ich nicht die Daten verliere.

      Mfg Co3dr

      Comment


      • #4
        Gibt es da eine möglichkeit nur die Geburtstags Eigenschaft hinzuzufügen. Und das ich nicht die Daten verliere.
        Du hattest doch gesagt das du Datenbank First verwendest oder?
        Dann solltest du das meiner Meinung auch so durchziehen. Nimm eine Datenbank mit aktuellem Schema generiere dir daraus dein Model das du in deiner Anwendung benutzt.
        Und für den Fall das du mit dieser neuen Anwendung auf eine Datenbank mit alten Schema triffst halte eine paar SQLs bereit die die nötigen Schemaänderungen in der Datenbank nachziehen.
        Üblicherweise sind ja bei solchen Upgrades/Migrationen eh nicht nur Schemaänderung nötig sondern auch Datenänderungen. Zum Beispiel wenn du dein neues Feld ergänzt möchtest du sicher auch bei bereits vorhandenen Datensätzen
        die mit irgendeinem sinnvollen Default füllen bzw. mit irgendeinem berechneten Wert aus anderen Daten(Wenn möglich, bei deinem geburtstag Beispiel eher schwierig).

        Comment


        • #5
          Ausgangspunkt ist momentan nutze ich XPO von DevExpress und möchte aber auf das EF umsteigen.
          Bei XPO ist es möglich das Datenbankschema anhand des Objektmodels automatisch zu aktuallisieren ohne SQL. Diese funktionalität würde ich auch gerne beim EF nutzen.

          Mein erster Anstatzpunkt war wegen der vorhandenen Datenbank Database First. Danach habe ich mit den Entity Framework Power Tools ein Reverse Enginiering gemacht um den Code First Ansatz mit einer bestehenden Datenbank zu nutzen quasi als alternative.

          Probleme die sich mir nun stellen
          -Bei Datenbank First gingen mir bei einem Schemaupdate alle Daten verloren, so das ich eine aktuelle DB hatte, aber keine Daten mehr
          -Bei Code First konnte ich über die Migrations , zwar Updatescripts erzeugen, aber bei größeren Änderungen wird mir immer ein Create Table erzeugt anstatt einer Alter Table Anweisung. Dadurch kam es zu Folgefehler wie. z.B Tabelle sei schon vorhanden.

          Datenänderungen sind für uns kein Problem.

          Mfg Co3dr

          Comment

          Working...
          X