我在从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; }
}
答案 0 :(得分:1)
如果您未在查询中指定RowKey,则可能存在正在返回的现有“空”行而不是您期望的行。