【问题标题】:More Problems with Windows Azure StorageWindows Azure 存储的更多问题
【发布时间】: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; }
}

【问题讨论】:

    标签: windows azure storage


    【解决方案1】:

    鉴于您没有在查询中指定 RowKey,您可能有一个现有的“空”行被返回,而不是您期望的行。

    【讨论】:

    • 感谢 lucifure,问题是我将“Kind”属性指定为“User”以外的其他属性。
    猜你喜欢
    • 2012-09-19
    • 2017-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-26
    • 1970-01-01
    • 2014-05-14
    相关资源
    最近更新 更多