【发布时间】:2012-03-16 04:52:37
【问题描述】:
我在从 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 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; }
}
【问题讨论】: