EF6 model first + Oracle.ManagedDataAccess

Problem: Beim Generieren der Datenbank aus dem EF-Model-Designer erscheint die folgende Fehlermeldung:

Ursache: Bei Änderungen am Model generiert der Model-Designer den EF-Verweis in der web.config neu. Vermutlich auf Grund eines Bugs oder restriktivem Verhalten, wird die Microsoft EF-Bibliothek ganz oben in die erste Zeile der configSections geschrieben. Die Oracle-EF-Section wird darauf bei der DB-Generierung ignoriert.

Lösung: MS- und Oracle-Sections tauschen.

1 Like
  • Problem: Nach dem Anlegen einer neuen Entität und dem persistieren über context.SaveChanges(); wird der Entität keine ID zugeordnet oder aber die ID wird nicht zurück in den Context geschrieben. Das erstellte Objekt hat nach dem persistieren also immer noch ID = 0;

  • Ursache: Der EDMX-Designer erzeugt den SSDL-Content in der Ausgabe-Datei .edmx fehlerhaft. Identity-Spalten werden trotz StoreGeneratedPattern = „Identity“ nur im CSDL-Content als solche abgelegt.

  • Lösung: Manuelles ergänzen der ID-Properties im SSDL-Content-Bereich der erzeugten .edmx-Datei durch StoreGeneratedPattern=„Identity“.

1 Like

Um mir die ständig wiederkehrenden Anpassungen in der EDMX-Datei zu vereinfachen, habe ich mir ein Skript für das automatische Ergänzen des StoreGeneratedPattern Attributes im SSDL / Storage-Bereich einer .edmx-Datei geschrieben.

Das .cs-Skript führe ich mithilfe von csscript als Pre-build Event aus. Der Pfad zur .EDMX-Datei ist im Skript hinterlegt.

StoreGeneratedPatternFixer.cs (6.5 KB)

Alternativ habe ich mir auch eine EXE gebastelt. Welche den Pfad zur .EDMX-Datei als Start-Parameter erhält.

StoreGeneratedPatternFixer.exe (9.5 KB)

Fehlercodes der Anwendung:
0 = Success
1 = InvalidFilename
2 = InvalidXmlStructure

1 Like