2016-09-04 2 views
2

Ich arbeite an einer neuen Anwendung mit Azure Mobile App Service und entwickeln Backend mit .NET und wählen Azure Tabellen als Back-End-Speicher. In allen Beispielen, die ich bisher gefunden habe, verwende ich TableController als Basis eines beliebigen API-Controllers und Modelle müssen von EntityData abgeleitet werden. Diese Entitätsdaten enthalten keinen Partitions- und Zeilenschlüssel, aber wir benötigen diese Schlüssel für den Azure Table-Speicher. Andere Möglichkeit zum Zugriff auf Tabellenspeicher erfolgt über Microsoft.WindowsAzure.Storage und Modelle werden von TableEntity vererbt.Was sollte ich für Azure Mobile Service - TableController oder API Controller verwenden?

Bitte geben Sie an, wie Sie den Backend-Service mit der azure Mobile App entwickeln können.

Antwort

2

Wir können Azure-Tabellenspeicher als Backing-Datenanbieter für Ihre TableControllers über das neue Microsoft.Azure.Mobile.Server.Storage-Paket verwenden. Siehe detaillierte Informationen von Azure Mobile Apps September 2015 Update. Detaillierte Schritte werden in this article gezeigt. Sie müssen mehr Aufmerksamkeit auf Folgendes richten:
1) Anders bei der Azure SQL-Datenbank ist Azure Table Storage ein nicht relationaler Speicher.
2) Der Datentyp von StorageData anstelle von EntityData, Id in StorageData muß abzuleiten formatiert als "<PartitionID>, <RowValue>"

public class TodoItem : StorageData 
    { 
     public TodoItem(): base("partition", System.Guid.NewGuid().ToString()) 
     { 

     } 
     public string Text { get; set; } 

     public bool Complete { get; set; } 

    } 


3) Im Gegensatz zu einem SQL-Datenbank, Tabellenspeicher als Back-End-Daten gibt IQQueryable nicht zurück.

+0

StorageData sieht wie eine Option aus, aber es hat zusätzliche Eigenschaften (CreatedAt, Deleted, Id etc ....), die als Basistabelle von StorageData TableEntity redundant aussieht und TableEntity hat bereits einige dieser Eigenschaften. Ich glaube, anstatt TableController zu verwenden, sollten wir CloudStorageAccount- und TableOperation-Klassen direkt aus dem Microsoft.WindowsAzure.Storage-Namespace verwenden. –

+0

Ich denke, diese Eigenschaften (CreatedAT, Deleted) ist sehr nützlich. ID wird ignoriert. Wir brauchen nur wenig Code, um die Speichertabelle als Backend zu verwenden, das ist sehr einfach. Wenn Sie sich dafür entscheiden, TableOperation zu verwenden, werden Sie sicher viel programmieren müssen. –

Verwandte Themen