Я не уверен, где именно, но у меня есть неправильная идея где-то с этим.
Я пытаюсь в первом случае запросить таблицу хранения azure с помощью linq. Но я не могу понять, как это делается. От взгляда на различные источники я имею следующее:
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 { }
Я, наверное, подобрал его ближе, прежде чем я с ним столкнулся. Либо это, либо я не понимаю, что такое TableService. Следующий код действительно работал у меня, но я пытаюсь переключить его на использование Linq.
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 { }
Я не смог найти хороший хороший пример, где бы я ни делал. Но из того, что я читал, это предполагает использование Linq. Любая помощь или указатели оценили. Спасибо.
Небольшое обновление. Ниже приведена синтаксическая ошибка, которую я сейчас получаю в AsTableServiceQuery:
'System.Linq.IQueryable' не содержит определения для "AsTableServiceQuery" и не может быть найден метод расширения "AsTableServiceQuery", принимающий первый аргумент типа "System.Linq.IQueryable" (вам не хватает директивы using или ссылка на сборку?)
Тем не менее, я не думаю, что это отражает реальную проблему, я думаю, что я только что собрал ее неправильно, просто не могу найти убедительный пример где-нибудь, что работает.