Laden...

[erledigt] Entity Framework: Kompletter Refresh nach Änderungen an der Datenbank

Erstellt von m.grauber vor 12 Jahren Letzter Beitrag vor 12 Jahren 626 Views
M
m.grauber Themenstarter:in
343 Beiträge seit 2010
vor 12 Jahren
[erledigt] Entity Framework: Kompletter Refresh nach Änderungen an der Datenbank

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 :]

6.911 Beiträge seit 2009
vor 12 Jahren

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!"

M
m.grauber Themenstarter:in
343 Beiträge seit 2010
vor 12 Jahren

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 :]