Votre double valeur est-elle dans son propre champ ou est-ce dans le champ partitionkey ou rowkey? PartitionKey et RowKey sont toujours des chaînes.
Je viens de créer un test simple qui écrit et lit une ligne avec un double champ, et les valeurs sont très bien conservées. J'ai modifié la classe échantillon SmsMessage à partir du code SMS Bill Lodin via msdev.com formation (je pris le int champ Délai et changé pour un flotteur, et retitré à MyDouble des éclaircissements):
public class SmsMessage: TableServiceEntity
{
public double MyDouble { get; set; }
public SmsMessage(string destination, string message, double myDouble)
{
PartitionKey = destination;
RowKey = message;
MyDouble = myDouble;
}
public SmsMessage()
: base("", string.Format("{0:d10}", DateTime.Now.Ticks))
{
}
}
je puis écrire à le SmsMessageTable:
smsTable.AddObject("SmsMessages", new SmsMessage(destination, message, myDouble));
smsTable.SaveChanges();
J'y vois dans l'explorateur de stockage de table, et mes doubles sont comme je les ai inscrits (par exemple 1,2345).
je récupère puis avec une simple requête LINQ, un nom d'utilisateur donné dans la clé de partition:
var results = from m in smsTable.SmsMessages
where m.PartitionKey.Equals(txtDestination.Text.Trim())
select m;
Mes doubles valeurs sont toutes conservées et fortement typés comme doubles.
Ceci est corrigé dans le SDK 1.3 –
Nous utilisons SDK 1.5 et toujours (ou encore) avons ce problème mais ce post montre que notre code est correct et c'est un problème dans le stockage Dev. –