Jetzt gehe ich in mein Programm und es wurde nicht aktualisiert ... Ich kann keine Null in die Spalte einfügen. Was muss ich tun, um den edmx richtig zu aktualisieren? Vielen Dank.
Die Auswahl des Aktualisierungsmodells aus der Datenbank ist die beste Methode zum Aktualisieren Ihres EDMX. Es gibt bestimmte Eigenschaften, die auf der konzeptionellen Ebene nicht aktualisiert werden.
Stellen Sie sicher, dass Ihre Store-Ebene aktualisiert wurde, indem Sie sie in der Model Viewer-Toolbox anzeigen. Wenn der Store ordnungsgemäß aktualisiert wurde, sind Sie in Ordnung und Ihre Datenbank wird synchronisiert. Wenn ja, gehen Sie in den visuellen Designer, klicken Sie auf das Feld, wechseln Sie zu Eigenschaften und aktualisieren Sie die NotNull-Eigenschaft auf der konzeptionellen Seite.
Update/Löschen aus dem EDMX ist nicht immer funktionsfähig. Wenn das Modell beim Klicken auf "Modell aus Datenbank aktualisieren" nicht aktualisiert wird, sagen Sie nach dem Aktualisieren einer Ansicht/Tabelle in der Datenbank Folgendes aus:
1) Löschen Sie die Ansicht/Tabelle aus dem Modelldiagramm
2) Wechseln Sie zur EDMX-Ansicht in die XML-Ansicht (klicken Sie mit der rechten Maustaste auf die EDMX-Datei und wählen Sie "Öffnen mit").
3) Suchen und löschen Sie die XML-Entitätselemente
4) Wechseln Sie wieder zur EDMX-Ansicht
5) Klicken Sie auf Modell aus Datenbank aktualisieren
Dies sollte jede Art von Änderung widerspiegeln, die Sie an der Datenbank Ihres EDMX vorgenommen haben. Es ist umständlich, funktioniert aber einwandfrei.
In einer idealen Welt würde ich erwarten, dass das Update Model from Database die Änderungen von DB zu EDMX synchronisiert. Meistens funktioniert es jedoch nicht.
Was ich erfolgreich gemacht habe, ist dies (VB.Net).
Ja, meistens funktioniert es nicht: - /
Die "beste Methode" (weil sie systematisch funktioniert) besteht darin, die EDMX-Datei zu löschen und erneut zu generieren . Vergessen Sie jedoch nicht, die Verbindungszeichenfolge in App.config zu entfernen (andernfalls fügt der VS2008-Assistent dem Standard ein Suffix hinzu Entitätsname) und leeren den Cache.
Ich hoffe, dass diese Tools in einer nächsten Version besser funktionieren werden, da sie die Produktivität drastisch verringern.
DIESER IS DER SCHNELLSTE EINFACHSTE WEG:
1.Bauen Sie das Projekt nach der Aktualisierung der EDMX-Datei auf.
2.Klicken Sie im Lösungs-Explorer mit der rechten Maustaste auf Ihre .tt-Datei.
3.Wählen Sie die Option "Benutzerdefiniertes Tool ausführen".
Dadurch wird die .tt-Datei aktualisiert.
Quelle: hier !
Diese Antwort ist besser: https://stackoverflow.com/a/23886016/1014884
Jede manuelle Bearbeitung ist reif für Fehler oder geht verloren, wenn jemand ein Werkzeug wie den Assistenten verwendet. Das Löschen und Aktualisieren mit dem Assistenten ist viel besser.
Öffnen Sie die edmx-Datei im XML-Editor des VS und prüfen Sie, ob beim Versuch des Updates Fehler aufgetreten sind.
<!--Errors Found During Generation:
warning 6013: The table/view 'foo.dbo.snafu' does not have a primary key
defined and no valid primary key could be inferred. This table/view has
been excluded. To use the entity you will need to review your schema,
add the correct keys and uncomment it.
<EntityType Name="snafu">
<Property Name="snafu_column" Type="smallint" />
</EntityType>-->
Im obigen Fall ... Durch das Hinzufügen eines Primärschlüssels zu der betreffenden Tabelle funktionierte das "Update Model from Database".
Es aktualisiert beispielsweise nicht die maximale Länge für Zeichenfolgenattribute!
Wenn Sie mit TFS arbeiten, ist es nicht gut, die Datei zu löschen. Sie möchten den Verlauf beibehalten und andere nicht beeinflussen.
Für mich funktioniert es mit einem winzigen separaten Projekt, mit dem ich die EDMX-Datei vollständig neu erstellen kann. Ich öffne sie in XML, kopiere Einfügen in das vorhandene und verschiebe eine Form im Modell, damit VS die CS-Datei neu erstellt . Voila, es ist jetzt aktualisiert.
Eine in der Datenbank erstellte Ansicht wurde nicht im Designer angezeigt (nachdem "Modell aus Datenbank aktualisieren ..." ausgewählt und ein Häkchen neben dem Namen der Ansicht hinzugefügt wurde). Ich habe keine Fehlermeldung erhalten, bis ich EDMX in XML-Ansicht umgestellt habe:
In der XML-Datei von edmx fand ich:
"Fehler beim Generieren gefunden: Warnung 6013: Für die Tabelle/Sicht '(Sicht Name)' ist kein Primärschlüssel definiert, und es wurde kein gültiger Primärschlüssel Abgeleitet. Diese Tabelle/Sicht wurde ausgeschlossen Verwenden Sie die Entität Sie müssen Ihr Schema überprüfen, die richtigen Schlüssel hinzufügen und das Kommentarzeichen entfernen. "
Ich habe die Ansicht geändert, um einen Primärschlüssel zu haben. Dann öffnete ich den edmx-Designer und führte "Update model from database ..." aus. Die Ansicht erschien dann erwartungsgemäß fehlerfrei im Designer.
Das Entfernen aller Tabellen aus der Designer-Ansicht und das Aktualisieren danach funktioniert für mich