Reputation: 749
I am having a problem reading back from windows azure table storage:
Here is the code that I use to retrieve the UserEntity from table storage:
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();
Below is the user entity that is stored in table storage. Notice it actually has values for each property. However what is being returned are nulls instead. Or 1/1/0001 for the JoinDate field and 0 for integer or long fields. I check the RowKey and PartitionKey and these are correctly being returned as part of the entity but the rest are not. Anyone have any ideas, or run into this issue before where the partitionkey and rowkey are populated correctly but the rest of the fields are not? I am using nov 2011 azure sdk, c# mvc3 on a 32 bit machine.
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
Here is my UserEntity class:
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; }
}
Upvotes: 0
Views: 279
Reputation: 1749
Given that you have not specified a RowKey in your query, it is possible that you have an existing “empty” row which is being returned instead of the row you are expecting.
Upvotes: 1