1

最近、Azure のコードを少し読んでいて、インターネットで見た例では、1 回の往復で複数の操作を利用していないように見えるのはなぜだろうと思っています。人々が DataSource を次のようにコーディングしない理由はありますか?

ForumDataSource.cs

   public void DeleteThread(params ForumThread[] itemToDelete)
    {
        foreach (var item in itemToDelete)
        {
            _ServiceContext.AttachTo(ForumDataServiceContext.ForumThreadTableName, item, "*");
            _ServiceContext.DeleteObject(item);
        }
        _ServiceContext.SaveChanges();
    }

そうすれば、複数の削除が発生する可能性があり、プログラミング モデルはかなりきれいになります。

4

1 に答える 1

3

SaveChanges... を呼び出すときは、必ず SaveChangesOptions.Batch を使用してください。そうしないと、すべての操作が個別のトランザクションとして実行されます。この変更により、削除するすべての項目が同じテーブルの同じパーティションの一部であり、それらの項目が 100 個以下 (Windows Azure テーブルの制限) であると仮定すると、上記のコードは問題ないはずです。

于 2010-09-18T19:31:25.710 に答える