Sagen wir, ich habe eine Liste von Entitäten (zum Beispiel eine Liste von TODO-Elementen), die mehr als ein Benutzer gleichzeitig ändern, löschen und hinzufügen kann.Wie implementiert man "getestests geänderte Elemente" mit ADO.NET Data Services?
Also zu maintane eine synchronisierte Liste zwischen allen Clients, ich möchte jeder Client (AJAX-basierte) nach Änderungen alle xx Sekunden fragen. Da die Liste sehr lang werden kann, möchte ich nicht jedes Mal eine vollständige Anfrage machen, sondern nur nach den geänderten Artikeln fragen (Artikel können aktualisiert, gelöscht oder neu sein).
Ist es mit ADO.NET Data Services möglich? Wenn ja, wie implementiere ich es, wenn ich Entity Framework auf dem Server verwende?
Ich habe überlegt, ASP.NETs Cache zu verwenden, um Änderungselemente zu speichern, wenn eine Änderungsoperation an den Datendienst übergeben wird, und über eine benutzerdefinierte Webmethode, die die letzten Änderungen seit der letzten Anforderung der letzten Clients zurückgibt (Anforderungen können sein verfolgt durch die Clients ASP.NETs-Session-Objekt). Ich habe jedoch keine Ahnung, wie der Änderungsstatus des einzelnen Elements (z. B. gelöscht oder aktualisiert oder eingefügt) in der Ergebnismenge angezeigt wird.
Eine großartige Lösung würde es dem Client auch ermöglichen, Änderungen in vielen Entitäten im selben Roundtrip zum Server anzufordern.
Jede Eingabe wird viel appreaciated.
Mit freundlichen Grüßen, Egil.
Danke für den Eingang Christopher. Ihre Idee wird definitiv funktionieren, aber ich würde gerne das Änderungsmanagement aus der Datenbank heraushalten, in meiner Welt ist es kundenbezogen und nicht wirklich relevant für die Daten. –
Vielleicht könnten Sie im Grunde das gleiche Schema verwenden, ohne die DB zu verwenden, indem Sie das Resultset in global.asax zwischenspeichern und das Generationsfeld usw. dort zum Resultset hinzufügen. Sie könnten dann die Generierungsnummer des Clients in der Sitzung oder in JS zwischenspeichern, um die Aktualisierungen/Einfügungen/Löschungen zu erhalten. –
Ich muss meine Daten in einer Datenbank speichern, aber wenn ich irgendwie die Ergebnismenge ändern könnte, wäre das großartig. Ich bin mir nicht sicher, wie EF mir das erlaubt. –