Flere problemer med Windows Azure-opbevaring

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har problemer med at læse tilbage fra vinduer azurblå bordlagring:


Her er koden, som jeg bruger til at hente UserEntity fra tabellen opbevaring:


TableServiceContext tableServiceContext = new TableServiceContext(storageAccount.TableEndpoint.AbsoluteUri, storageAccount.Credentials);
tableServiceContext.RetryPolicy = RetryPolicies.Retry(3, TimeSpan.FromSeconds(1));
user = (from g in tableServiceContext.CreateQuery<UserEntity>(PazoozaEnums.PazoozaTables.UsersUserFacebookActions.ToString())
        where g.PartitionKey.Equals(FacebookUserID) && g.Kind.Equals(PazoozaEnums.TableKinds.User.ToString())
        select g).AsTableServiceQuery().Execute().FirstOrDefault();


Nedenfor er brugerenheden, der er gemt i tabelopbevaring. Bemærk, at det faktisk har værdier for hver ejendom. Men hvad der bliver returneret er nulls i stedet. Eller 1/1/0001 for feltet JoinDate og 0 for heltal eller lange felter. Jeg kontrollerer RowKey og PartitionKey, og disse returneres korrekt som en del af virksomheden, men resten er ikke. Nogen har nogen ideer, eller løber ind i dette problem, før partitionkey og rowkey er befolket korrekt, men resten af ​​felterne er ikke? Jeg bruger nov 2011 azurblå sdk, c # mvc3 på en 32 bit maskine.


AccessToken     String  AAADlql9ZBqlMBANM1J30d3cmnM6s1o5MojXyZBP5B3dXNkIweJRZA2fx73klxawRhUn9HZAqBC8Y22YZAtwlKolpep5b7ZCedYYSLmO79E5QZDZD
AlternativeName     String  
AlternativeProfileLink  String  
AlternativeSmallPicture     String  
AlternativeSmallPictureSquare   String  
EmailAddress    String  someEmail@gmail.com
JoinDate    DateTime    2012-03-16T04:35:01.518053Z
Kind    String  User
Name    String  PazoozaTest Pazman
OfflineAccessToken  String  AAADlql9ZBqlMBANM1J30d3cmnM6s1o5MojXyZBP5B3dXNkIweJRZA2fx73klxawRhUn9HZAqBC8Y22YZAtwlKolpep5b7ZCedYYSLmO79E5QZDZD
PageAccessToken     String  
PageID  Int64   0
PageSize    Int32   50
ProfileLink     String  http://www.facebook.com/profile.php?id=100001771566047
SmallPicture    String  http://profile.ak.fbcdn.net/hprofile-ak-snc4/41541\_100001771566047\_2716161\_s.jpg
SmallPictureSquare  String  http://profile.ak.fbcdn.net/hprofile-ak-snc4/41541\_100001771566047\_2716161\_q.jpg
VideoPageSize   Int32   100


Her er min UserEntity klasse:


public class UserEntity : KindEntity, IUserEntity
{
    // PartitionKey = UserID
    // RowKey = (DateTime.MaxValue - DateTime.UtcNow).Ticks.ToString("d19") + Guid.NewGuid().ToString()

    public UserEntity() : this(null, null) { }
    public UserEntity(string partitionKey, string rowKey) : base(partitionKey, rowKey, PazoozaEnums.TableKinds.User.ToString()) { }

    public string Name { get; set; }
    public long PageID { get; set; }
    public int PageSize { get; set; }
    public int VideoPageSize { get; set; }
    public string EmailAddress { get; set; }
    public string AccessToken { get; set; }
    public string PageAccessToken { get; set; }
    public string OfflineAccessToken { get; set; }
    public string SmallPicture { get; set; }
    public string SmallPictureSquare { get; set; }
    public string ProfileLink { get; set; }
    public string AlternativeName { get; set; }
    public string AlternativeSmallPicture { get; set; }
    public string AlternativeSmallPictureSquare { get; set; }
    public string AlternativeProfileLink { get; set; }
    public DateTime JoinDate { get; set; }
}

Bedste reference


Da du ikke har angivet en RowKey i din forespørgsel, er det muligt, at du har en eksisterende 'tom' række, som bliver returneret i stedet for den række, du forventer.