2017-12-07 8 views
0

Ich möchte Daten in Tabelle in Migration einfügen. Ist es möglich? Die Migration benötigt einen parameterlosen Konstruktor und ich möchte den in der Datei Startup.cs definierten db-Kontext verwenden (am besten möchte ich das durch die Dependency-Injection erhalten). Wie geht das?ef-Kern-Migration Daten einfügen

+0

Überprüfen Sie diese https://forums.asp.net/t/2122687.aspx?How+to+Seed+Data+in+Core+ – itikhomi

Antwort

0

Bei der Migration wird Ihre DB auf eine neue "Version" aktualisiert. Dabei müssen Ihre vorhandenen DB-Tabellen ("alte Version") nicht mit Ihren Klassen (Entitäten) übereinstimmen ("neue Version"), sodass Sie sie nicht sicher verwenden können.

Während der Migration sollten Sie nur mit Tabellen und Datensätzen arbeiten, die rohe SQL-Befehle verwenden. Sie können migrationBuilder.Sql("UPDATE ..."); für solche Updates verwenden und manuell in den Migrationscode Up() eingeben.

Wenn Sie Daten benötigen Änderungen durchführen Entitätsklassen mit - sollten Sie "Seed Data" solution (von @itikhomi Kommentar) verwenden, aber denken Sie daran, dass es jedes Mal die App startet laufen, so dass Sie im Inneren eine Version-check tun sollten .