Heute hatte ich, und möglicherweise noch mehr Probleme mit EF6 integrierten Konventionen. Beim Debugging habe ich gesehen, dass der Code zuerst EF6 alle verfügbaren Standardkonventionen aktiviert.Deaktivieren Sie alle Konventionen in EF6
Da ich eine gut aussehende Modellzuordnung mit Mapper-Klassen erstellt habe, möchte ich nicht, dass Konventionen mein Datenmodell ändern.
In dem speziellen, kann ich nicht eine einfache SELECT
Abfrage wegen einer falschen Spalte Extent1.LinkedEntity_id
ausführen, die in die SQL werden, wenn die FK Spalte korrekt als linkedentity
abgebildet ist, und ich habe keinen Grund, einen anderen Namen zu verwenden, in meinem Datenbank.
Zur Klarheit: Dieses Code-First-Modell ist Reverse Engineering von einem DB-zuerst. Datenbankregeln und ich kann sein Design nicht ändern.
Frage: Wie deaktiviere ich alle Konventionen auf einmal? Scheint, dass ich keine .Clear
Methode in
Warum verwenden Sie Code-zuerst, wenn der DB existiert und nicht geändert werden kann? Das sieht für mich zunächst nach Datenbank-Datenbank aus. – Sefe
Es ist eine lange Geschichte. Grundsätzlich pflegen wir ein ** Produkt **, kein Projekt. Es gibt keinen einzelnen DB: Die Datenbank muss an jedem Kundenstandort, auf dem die Anwendung installiert ist, bereitgestellt, verwaltet und migriert werden. Wirklich, es ist eine lange Geschichte, die mit einem Bulk-Insert-Fehler mit zwei verschiedenen EF-Utility-Bibliotheken begann. –
In der Tat, ich hatte dieses Problem nicht, bevor ich das EDMX-Modell zu Code zuerst portierte –