Comment interroger une table de stockage Azure avec Linq?

Je ne sais pas où exactement, mais j'ai eu la mauvaise idée quelque part avec cette.

J'essaie, en première instance, à la requête d'un stockage azure table à l'aide de linq. Mais je ne peux pas savoir comment c'est fait. En regardant une variété de sources, j'ai le texte suivant:

List<BlogViewModel> blogs = new List<BlogViewModel>();

CloudStorageAccount storageAccount = CloudStorageAccount.Parse(RoleEnvironment.GetConfigurationSettingValue("BlogConnectionString"));
CloudTableClient tableClient = storageAccount.CreateCloudTableClient();
CloudTable blogTable = tableClient.GetTableReference("BlogEntries");

try
{
   TableServiceContext tableServiceContext = tableClient.GetTableServiceContext();
   TableServiceQuery<BlogEntry> query = (from blog in blogTable.CreateQuery<BlogEntry>()
   select blog).AsTableServiceQuery<BlogEntry>(tableServiceContext);
   foreach (BlogEntry blog in query)
   {
      blogs.Add(new BlogViewModel { Body = blog.Body });
   }
}
catch { }

J'ai probablement eu ça de plus près avant que j'ai foiré autour avec il. Soit ça, ou je suis l'incompréhension de ce que le TableService est. Le code suivant ne fonctionne pour moi, mais je suis en train de passer à l'utilisation de Linq à la place.

List<BlogViewModel> blogs = new List<BlogViewModel>();

var storageAccount = CloudStorageAccount.Parse(RoleEnvironment.GetConfigurationSettingValue("BlogConnectionString"));
var tableClient = storageAccount.CreateCloudTableClient();
CloudTable blogTable = tableClient.GetTableReference("BlogEntries");

TableRequestOptions reqOptions = new TableRequestOptions()
{
   MaximumExecutionTime = TimeSpan.FromSeconds(1.5),
   RetryPolicy = new LinearRetry(TimeSpan.FromSeconds(3), 3)
};
List<BlogEntry> lists;

try
{
   var query = new TableQuery<BlogEntry>();
   lists = blogTable.ExecuteQuery(query, reqOptions).ToList();

   foreach (BlogEntry blog in lists)
   {
      blogs.Add(new BlogViewModel { Body = blog.Body });
   }
}
catch { }

J'ai été incapable de trouver un solide bon exemple de ce que je devrais faire. Mais de ce que j'ai lu, il ne suggère l'utilisation de Linq est possible. De l'aide ou des pointeurs apprécié. Merci.


Légère mise à jour. La syntaxe est la suivante erreur que j'ai actuellement sur AsTableServiceQuery:

'Système.Linq.IQueryable' ne contient pas une définition pour 'AsTableServiceQuery' et aucune méthode d'extension 'AsTableServiceQuery' acceptant un premier argument de type 'System.Linq.IQueryable' a pu être trouvé (vous manque une directive using ou une référence d'assembly?)

Cependant, je ne pense pas que cela reflète la vraie question, je pense que je viens juste de me mettre ensemble de mal, juste ne pouvez pas trouver un exemple solide de n'importe où qui fonctionne.

source d'informationauteur AndrewPolland