2012-03-16 176 views
0

我有一个问题,从Windows Azure的表存储回读更多的问题:与Windows Azure存储

这里是我用来检索表存储的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(); 

下面是存储在表存储中的用户实体。注意它实际上有每个属性的值。然而,返回的是空值。或者1/1/0001代表JoinDate字段,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 [email protected] 
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

既然你还没有在查询中指定的RowKey,有可能是你有被退回,而不是现有的“空”行你期待的那一排。

+0

谢谢lucifure,问题是我已经指定“Kind”属性为除“User”之外的其他内容。 – 2012-03-16 08:22:39