Lassen Sie mich den Titel erklären.Entity Framework Daten Updates in einer Multi-User-Umgebung mit zentraler Datenbank
Ich verwende Entity Framework Code zuerst in einer Anwendung (TestApp). Für Debugging-Zwecke verbindet sich die TestApp mit einer SQLExpress-Datenbank (zentraler Datenbankserver).
Um die Dinge hier einfach zu halten, enthält die Datenbank eine Tabelle "Produkte" und die TestApp zeigt alle "Produkte" aus der Datenbank in einem Datagrid und TestApp kann ein "Produkt" hinzufügen/löschen oder den ProductName ändern.
public class Product {
public int ProductId { get; set; }
public string ProductName { get; set; }
}
public DbSet<Product> Products { get; set; }
Ich habe zum Beispiel 3 PCs, wo TestApp installiert ist und läuft (ich sie Client_X nennen werde). Wenn ich über Client_1 ein neues "Produkt" hinzufüge, dann ist dies in der TestApp auf Client_2 und Client_3 nicht direkt sichtbar. Nur wenn Client_2 und Client_3 alle Daten erneut abrufen (manuelle Aktualisierung), sehe ich den neu hinzugefügten Datensatz.
Was ich wissen möchte: Wie kann ich Änderungen in der Datenbank über EF-Code zuerst bemerken? Wie würden Client_2 und Client_3 ihr Datagrid automatisch aktualisiert bekommen, weil ein neues Objekt hinzugefügt oder entfernt wurde?
Ich bin nicht sicher, ob es zu viel verlangt wird, aber ein einfaches Beispielprojekt oder einfacher Code, um dies zu demonstrieren, wäre nützlich.
FYI: Ich bin relativ neu zu EF-Code zuerst. (Ich benutze .NET 4.0 und EF-Code zuerst 4.3.1)
Vielen Dank im Voraus.
Scheme:
Client_3<
\
\
\
\
\>
Client_1 <---> [Central Database] <----> Client_2
Update/Edit:
Ok, es ist klar, dass das Entity Framework selbst keine Synchronisierung zwischen mehreren Clients macht.
Also werde ich eine andere Frage stellen: Ich denke, die Client-Server-Arbeitsweise:
- Eine einzelne Server-Anwendung, die zuerst die Datenbank und verwendet den Entity Framework Code erstellt.
Mehrere Clients, die mit diesem einzelnen Server kommunizieren Anwendung.
Was wäre jetzt der beste Weg, um sicherzustellen, dass die Kunden die gleichen Daten verwenden und Aktualisierungen/Änderungen an den anderen Benutzern sehen? (ich würde Codebeispiele zu schätzen wissen.)
Gefunden eine verwandte Frage: http://stackoverflow.com/questions/4852564/entity-framework-underlying-data-in-database-change-notification – juFo
Ich möchte genau das gleiche tun, aber mit einer Webanwendung . Ich habe mehrere Web-Server mit der gleichen DB verbinden - Prasad – Prasad