2012-03-26 8 views
0

Wenn ich binäre in Azure-Tabelle speichern möchte, wenn ich eine Klasse erstelle, die von TableServiceEntity geerbt wird, was ist der Datentyp, den ich verwenden soll? und wie die Länge für den Datentyp zu überprüfen, um sicherzustellen, seinen nicht über 64kWie speichere ich Binär nach Azure Table Storage von TableServiceEntity?

public class SomeEntity : TableServiceEntity 
{ 
     public whattype BinaryData { get; set; } 
} 
+1

Für binäre Daten neige ich dazu, es in einen Blobstore und dann einen Verweis auf das in meiner Tabelle. – onnoweb

+0

Ich möchte sie in einer Transaktion abfragen, da ich sie immer beide brauche und binär ist weniger als 64k –

+0

Sie könnten auch die FatEntities von LokadCloud überprüfen - http://code.google.com/p/lokad-cloud/wiki/ FatEntities Es könnte Ihren Bedürfnissen am besten entsprechen! – astaykov

Antwort

4

Für binäre, ein byte [] der Länge < = 64K ist alles, was notwendig ist. Der Tabellenspeicherclient konvertiert ihn nur für Transportzwecke in Base64, der Speicher ist jedoch in Binärform. Wenn Sie mehr als 64 KB speichern möchten, können Sie sie auf mehrere Spalten aufteilen.

Ich habe einen alternativen Azure-Tabellenspeicherclient, Lucifure Stash, geschrieben, der große Datenspalten> 64 KB, Arrays, Enums, Serialisierung, öffentliche und private Eigenschaften und Felder und mehr unterstützt. Es ist Open Source und verfügbar unter http://lucifurestash.codeplex.com und über NuGet.

+0

Interessant, wird gehen zu überprüfen. Kann es mehr als 1 Mio. Daten in einer Zeile unterstützen? –

+0

Azure-Tabellenspeicher unterstützt nicht mehr als 1 MB Gesamtzeilengröße. Dies umfasst Gemeinkosten einschließlich Speicherplatz zum Speichern der Eigenschaftsnamen. Natürlich können Sie eine Abstraktionsebene verwenden und auf mehrere Zeilen aufteilen, aber Blob Storage wäre hier die bevorzugte Implementierung. – hocho

Verwandte Themen