Windows Azure存储的更多问题

时间:2012-03-16 04:52:37

标签: windows azure storage

我在从windows azure table storage回读时遇到了问题:

以下是我用来从表存储中检索UserEntity的代码:

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();

以下是存储在表存储中的用户实体。请注意,它实际上具有每个属性的值。但是返回的是null。或者JoinDate字段为1/1/0001,整​​数或长字段为0。我检查RowKey和PartitionKey,这些正确地作为实体的一部分返回,但其余的不是。任何人有任何想法,或在正确填充partitionkey和rowkey但其余字段不是之前遇到此问题?我在32位机器上使用nov 2011 azure sdk,c#mvc3。

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

这是我的UserEntity类:

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; }
}

1 个答案:

答案 0 :(得分:1)

如果您未在查询中指定RowKey,则可能存在正在返回的现有“空”行而不是您期望的行。