使用Windows Azure Table Storage
(WATS)並嘗試更新應用以使用Azure。我讀過很多文章,並且不確定最好的方法,那就是自我參照模型中的孩子的父母。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)
得到孩子的消息。通過所有的父級的消息迭代,並使用並行for循環
.Where(o => o.ParititionKey == "Child_000000000000001_" + parentMessageId)
但問題是,這將導致查詢11次!
這是非常好的 - 下載示例SLN並查看Jeffrey Richter的文章,網址爲http://www.wintellect.com/Articles/Working%20with%20Azure%20Tables%20with%20Multiple%20Entity%20Schemas%20by%20Jeffrey %20Richter.pdf – 2011-05-11 01:53:21
這正是我正在尋找的!接受的答案 – 2011-05-11 03:02:32