Laden...

Forenbeiträge von DanielK Ingesamt 2 Beiträge

28.08.2013 - 13:53 Uhr

@ M@TUK

Derzeit wird unser DbContext beim Start instanziert und dann weiterverwendet.
Wäre es denn eher sinniger den DbContext zu verwerfen und neu generieren zu lassen?

Das hier ist übrigens die Stelle zur DbContext instanzierung.

public UnitOfWork()
        {
            if (_context == null)
            {
                _context = new UltranizerV2Context(this);
                
            }
        }

MfG

28.08.2013 - 13:21 Uhr

verwendetes Datenbanksystem: <MSSQL>

Hallo zusammen!
Ich schreibe ein Multi-User Programm, welches Datensätze in verschiedenen Clients anzeigt und zur Bearbeitung frei gibt. Dennoch sollten alle Clients in regelmäßigen Abständen die gleichen Daten aus der DB bekommen.

Nun zu der eigentlichen Frage…

Die Objekte werden regelmäßig von einem Thread ( alle ~30 Sekunden derzeit ) aus der DB abgefragt und beim ersten Abfragen vollkommen richtig angezeigt. Sollte ein anderer Client oder in der DB jedoch ein Wert geändert werden, ist keine Änderung bei anderen Clients sichtbar. Der Lokale Context bekam die Änderung mit und zeigt sie auch Fehlerfrei, während die anderen Clients weiterhin den alten, falschen, Wert bekommen.

Wie kann ich dafür Sorgen das alle Clients immer die aktuellen Werte aus der Datenbank bekommen?

Beispiel:
Das Objekt Property Order.StateId == 1 wird bei einem Client auf 2 geändert. In der DB und dem Client der die Änderung ausführte ist die ID nun auf 2 gesetzt, während alle anderen Clients trotz neuem Abfragen des Contexts die 1 als Ausgabe bekommen.

public IQueryable<T> All()
        {
        	return _context.Set<T>().AsQueryable();
        }

Problem ist, dass die Daten nicht frisch aus der DB kommen.

MfG
Daniel