verwendetes Datenbanksystem: <SQL-Server 2008>
Hallo,
mein Programm wird gestartet und läuft. Dann wird eine Änderung an der Tabellenstruktur gemacht (z.B. eine Tabelle 'Testtabelle' in der Datenbank angelegt)
(Diese Tabelle existiert bereits in der Model.edmx-Datei meines Programms)
Danach wird die Connection geschlossen und neu aufgebaut. Trotzdem meckert .NET anschließend, wenn man auf die neue Tabelle zugreifen möchte, obwohl die Tabelle da ist (sieht man auch im SQL-Server Management Studio):
Fehlermeldung:
Ungültiger Objektname 'Testtabelle'.
Startet man vor dem Zugriff auf die neue Tabelle hingegen das Programm neu, tritt kein Fehler auf.
Ich suche daher einen Befehl, ähnlich wie "dataentity.RefreshAllObjects" um den Neustart des Programms zu vermeiden.
Kennt jemand das Phänomen? 🤔
Vielen Dank!
Gruß
Mfg
Michael
PS: Ich stelle nur Fragen, wenn ich in Büchern, im Web und in Foren nichts gefunden habe. Dumme Fragen bitte ich zu entschuldigen!
:] VISUAL STUDIO 2017 + .NET FRAMEWORK 4.5 + SQL-Server 2012 :]
Hallo m.grauber,
das Problem und die Ursache kenn ich, aber keine elegante Lösung (da ich mich auch nie damit beschäftigt habe).
Das (kompilierte) Model wird vom EF per AppDomain gecached, d.h. wenns einmal erstellt wurde lebt es so lange wie die AppDomain, in der es erstellt wurde, also i.d.R. solange wie das Programm läuft.
Somit gibts als Lösungen den Neustart der Anwendung od. eine eigene AppDomain die neugestartet wird. Letzteres ist aber wohl nur sinnvoll, wenn die Änderungen in der DB häufig vorkommen und dabei wäre es ratsam die gesamte Anwenudng in der AppDomain laufen zu lassen und vom Main aus nur die Verwaltung der AppDomain durchzuführen.
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
Hallo Gü,
danke für die Information! 👍 Ich hatte noch immer etwas gesucht, was es ermöglicht. Leider findet man im Internet nur Sachen zum grafischen Model-Designer.
Aber für mich ist es sehr wichtig zu wissen, damit ich es umschiffen kann, statt weiter zu suchen.
Ja, der Neustart ist zwar nicht am elegantesten aber scheinbar wirklich die einzige Möglichkeit.
Vielleicht fügt Microsoft ja in der nächsten Version eine Refresh() - Möglichkeit hinzu. Das wäre prima!
Grüße nochmals!
Mfg
Michael
PS: Ich stelle nur Fragen, wenn ich in Büchern, im Web und in Foren nichts gefunden habe. Dumme Fragen bitte ich zu entschuldigen!
:] VISUAL STUDIO 2017 + .NET FRAMEWORK 4.5 + SQL-Server 2012 :]