Использование Windows Azure Table Storage
(WATS) и попытка обновления приложения для использования Azure. Я прочитал много статей, и я не уверен в лучшем подходе к этому, то есть родительский к ребенку в самореляционной модели.Лазурный стол хранения - шаблон для родительского ребенка (схема самореференции)
то есть одно родительское сообщение может иметь много дочерних под-сообщений. В модели БД это будет таблица саморегуляции.
Как бы я лучшей структурой для этого WATS
так, что когда я сделать запрос «Дайте мне 10 родительских записей», он также будет возвращать все дочерние-сообщения, принадлежащие к родителю ...
субъекта сообщение/подчинение, как показано ниже. Я попытался определить PK и RK, как показано ниже:
public class TextCacheEntity : AzureTableEntity // custom table inherits AzureTableEntity
{
public override void GenerateKeys()
{
PartitionKey = string.Format("{0}_{1}_{2}", MessageType, AccountId.PadThis(), ParentMessageId);
RowKey = string.Format("{0}_{1}", DateOfMessage.Ticks.ReverseTicks(), MessageId);
}
public string MessageType { get; set; }
public int AccountId { get; set; }
public DateTime DateOfMessage { get; set; }
public string MessageId { get; set; }
public string ParentMessageId { get; set; }
// other properties...
}
Я думал о реализации так дочерние сообщения хранить parentMessagesId и родительский parentMessageId будет пустым.
Узор затем будет
Получить Родительские сообщения
.Where(o => o.ParititionKey == "Parent_000000000000001_").Take(10)
Получить дочерние сообщения. Перебрать все родительские сообщения и с использованием параллельного цикла для
.Where(o => o.ParititionKey == "Child_000000000000001_" + parentMessageId)
Но проблема в том, что это приведет к 11 запросов!
Это очень хорошо - скачал образец sln и посмотрел статью Джеффри Рихтера по адресу http://www.wintellect.com/Articles/Working%20with%20Azure%20Tables%20with%20Multiple%20Entity%20Schemas%20by%20Jeffrey % 20Richter.pdf –
Это именно то, что я ищу! Принятый ответ –