Laden...

Aus einer DB generierte Models mit EF Core aktualisieren/neues Model hinzufügen?

Erstellt von schuppsl vor 4 Jahren Letzter Beitrag vor 4 Jahren 1.795 Views
S
schuppsl Themenstarter:in
789 Beiträge seit 2007
vor 4 Jahren
Aus einer DB generierte Models mit EF Core aktualisieren/neues Model hinzufügen?

verwendetes Datenbanksystem: MSSQL

Guten Morgen.

In meiner .Net Core 3.1 habe ich per Database First meine Models anlegen lassen.

dotnet ef dbcontext scaffold ...

Funktionierte prima und ich kann in die Datenbank schreiben und lesen.
Das war vor ca. 14 Tagen.

Heute geht es nicht mehr, obwohl ich kein Änderungen gemacht hatte.
In der DB habe ich eine neue Tabelle angelegt und wollte diese nun einfügen.

Bei Ausführen des Befehls kommt leider immer nur> Fehlermeldung:

Build failed

Ich kann aber das Projekt und die komplette Projektmappe problemlos erstellen.
Es kommen auch keine Fehler oder sonst etwas.
Alle benötigten DLL's sind vorhanden.
Alle EF DLLs sind aktuell.

Also exakt dasselbe wie vor 14 Tagen, keine Änderung, aber geht nicht mehr.

Kennt jemand hierfür eine Lösung?

S
schuppsl Themenstarter:in
789 Beiträge seit 2007
vor 4 Jahren

Also ich habe nun im DbContext das DbSet und die Klasse an sich manuell hinzugefügt..
so geht's zumindest.

T
2.222 Beiträge seit 2008
vor 4 Jahren

Den Database First Ansatz solltest du auch nicht mehr nutzen.
Dieser wird auch meines Wissens nicht mehr im aktuellen EF Core unterstützt bzw. ist Code First hier der vorgegeben Weg.

T-Virus

Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.

S
schuppsl Themenstarter:in
789 Beiträge seit 2007
vor 4 Jahren

Ok, vielen Dank.
Das verstehe ich zwar nicht, aber ich nehme es hin wie es ist.
Ich meine - was ist wenn ich einfach eine fertige Datenbank habe und diese nutzen möchte...?

16.828 Beiträge seit 2008
vor 4 Jahren

schuppsl, dazu musst Du verstehen, wie das Zeug funktioniert; wenn Du es nur "hin nimmst" statt es zu verstehen (zB über die Doku) - ja, dann wirds schwer.

EF macht nichts anderes als Klassen (POCOs) als Entitäten gegen eine Datenbank zu verwenden.
Ob die Entitäten gehen eine neue oder eine alte DB verwendet wird ist EF egal.

Database First hat früher nichts anderes gemacht als das Schema auszulesen und Dir eben Klassen zu erstellen - ob Du das von Hand oder über einen Generator machst (den es weiterhin gibt) macht keinen Unterschied.
Was komplett weggefallen ist, ist Database First mit Hilfe von EDMX.

IIRC kann das Scaffolding auch das Schema in Migrations übersetzen; wird aber meines Wissens nicht alles unterstützt.

Also exakt dasselbe wie vor 14 Tagen, keine Änderung, aber geht nicht mehr.

Das ist ne Aussage, die in 100% der Fälle nie stimmt.
Wenn es keine Änderung gibt, dann gibt es auch kein anderes Verhalten. irgendwas muss also anders sein - Du weißt es halt nicht (wir auch nicht).

  • EF CLI nicht aktuell?
  • Irgendwas im Build Cache?
  • Logging nicht aktiv?
  • ...

Gibt zig Sachen, die Du prüfen kannst. Nur "nichts geändert" stimmt halt nie.
Die Erkenntnis endet meist in "ups, hab ich nicht dran gedacht" oder "das wusste ich gar nicht" 😉