2012-08-02 20 views
0

我試圖找出Azure雲存儲服務的成本。它說它只需要每10萬美元交易0.01美元。我猜這是一個用於讀寫的事務。但是,當用LINQ進行查詢時。例如,如果我將更新在100個實體中找到的值。假設我可以進行批量更新,這會調用一個事務嗎?Azure表中的一項事務是什麼?

例如下面的代碼,它會算作一個事務嗎?

CloudTableQuery<Data> aBatch = (from e in s_context.CreateQuery<Data>("Table") where e.PartitionKey == "some_pkey" select e).AsTableServiceQuery<Data>(); 
foreach (Data d in aBatch) 
{ 
    d.Content = "updated content"; 
    s_context.UpdateObject(d); 
} 
s_context.SaveChangesWithRetries(SaveChangesOptions.Batch); 

回答

0

這代碼看起來錯了...你需要的UpdateObject調用是在循環。

但是要回答您的一般問題,一個批量更新是一個事務。有關詳細的解釋,請參閱http://blogs.msdn.com/b/windowsazurestorage/archive/2010/07/09/understanding-windows-azure-storage-billing-bandwidth-transactions-and-capacity.aspx

+0

對,我在發佈之前沒有嘗試過代碼。現在更新 – starcorn 2012-08-03 13:05:38

+0

我認爲代碼仍然是錯誤的。在循環中應該是's_context.UpdateObject(d)'。 :-) – smarx 2012-08-03 15:53:11

+0

啊,你說的對。><'' – starcorn 2012-08-04 09:31:18