2016-07-06 4 views
1

Die Offline-Synchronisations-API von Azure bietet kein vollständiges ORM, bietet jedoch eine grundlegende Zuordnung von Klasse zu Tabelle.Initialisierung der Klasse-zu-Tabelle-Zuordnung in der Offline-Synchronisierungs-API von Azure

Die sample project ‚s TodoItemManager hat dies:

store.DefineTable<TodoItem>(); 

dies sollte nur auf der mobilen App auf ersten Lauf durchgeführt werden, oder ist es sicher jedes Mal nennen es beginnt? Führt es also eine Operation "create if not exist" aus?

Und was, wenn sich das Schema der Klasse ändert?

Antwort

2

Azure Mobile-Apps tut das Äquivalent eines „erstellen, wenn nicht vorhanden“ auf Ihrer SQLite Datenbank - es sicher ist es jedes Mal startet die App aufrufen.

+0

Wenn sich meine Klasse ändert, aktualisiert die API automatisch das Schema der zugeordneten Tabelle? Mit anderen Worten, gibt es eine offizielle Möglichkeit für uns, Migrationen durchzuführen? –

+1

@hbob Wenn Sie Spalten hinzufügen, fügt das SDK diese zum lokalen Speicher hinzu. Es ist jedoch keine echte Migrationsunterstützung - die neuen Spalten haben beispielsweise Nullwerte und das SDK löscht keine Spalten. Für echte Migrationsunterstützung müssten Sie Ihre eigene lokale Speicherebene implementieren. Siehe https://github.com/Azure/azure-mobile-apps-net-client/blob/master/src/Microsoft.WindowsAzure.MobileServices.SQLiteStore/MobileServiceSQLiteStore.cs#L487. –

1

Der Datensynchronisierungsdienst synchronisiert nur Daten. Es ist zwar in der Lage, die entsprechenden Tabellen zu erstellen, die während der Bereitstellung in einer Mitgliedsdatenbank synchronisiert werden, es erstellt jedoch nur das absolute Minimum für die Synchronisierung. Es werden keine gespeicherten Prozeduren, Trigger oder Ansichten aus der Quelldatenbank erstellt oder synchronisiert. Wenn Sie möchten, dass die Zieldatenbankmitglieder über eine vollständige Kopie des Datenbankschemas aus der Quelle verfügen, können Sie die Quelldatenbank scripten und das Skript zuerst auf den Zieldatenbankmembern ausführen.

Wenn Sie das Schema Ihrer Mitgliedsdatenbanken ändern, werden diese Änderungen außerdem nicht vom Dienst abgeholt und synchronisiert. Nur Spalten, die explizit als Teil des Datensatzes in der Synchronisierungsgruppe ausgewählt wurden, werden synchronisiert. Wenn Sie Spalten als Ergebnis einer Schemaänderung einfügen oder entfernen möchten, müssen Sie die Synchronisierungsgruppe ändern.

https://jtabadero.wordpress.com/2012/08/23/things-you-need-to-know-about-sql-data-sync-service/

+1

Bei der Frage ging es um die Offline-Synchronisierung in Azure Mobile Apps, nicht um den Datensynchronisierungsdienst. –

+0

Ja In azure Mobildienste ist die Synchronisierungsoption für die Daten zwischen einem lokalen Speicher (SQLite) und SQL Azure. – Aravind

Verwandte Themen