NoSQL チュートリアル: DocumentDB C# コンソール アプリケーションの作成

Azure DocumentDB .NET SDK の NoSQL チュートリアルへようこそ。 このチュートリアルに従うことで、DocumentDB リソースを作成し、クエリするコンソール アプリケーションを準備することができます。

ここで説明する操作は以下のとおりです。

  • DocumentDB アカウントを作成して接続する
  • Visual Studio ソリューションを構成する
  • オンライン データベースを作成する
  • コレクションを作成する
  • JSON ドキュメントを作成する
  • コレクションをクエリする
  • ドキュメントを置換する
  • ドキュメントを削除する
  • データベースを削除する

時間がなくても 心配はありません。 GitHub で完全なソリューションを入手できます。 簡単な手順については、「完全な NoSQL チュートリアル ソリューションを入手する」のセクションを参照してください。

その後で、このページの上部または下部にある投票ボタンを使用して、フィードバックをお寄せください。 マイクロソフトから直接ご連絡を差し上げて問題がなければ、コメント欄に電子メール アドレスをご記入ください。

それでは始めましょう。

前提条件

以下のものがそろっていることを確認してください。

手順 1: DocumentDB アカウントを作成する

DocumentDB アカウントを作成しましょう。 使用するアカウントが既にある場合は、「 Visual Studio ソリューションをセットアップする」に進んでかまいません。 DocumentDB Emulator を使用する場合は、Azure DocumentDB Emulator に関する記事に記載されている手順に従って、エミュレーターをセットアップし、「Visual Studio ソリューションをセットアップする」に進んでください。

  1. 新しいウィンドウで、Azure Portal にサインインします。
  2. ジャンプバーで [新規][データベース][NoSQL (DocumentDB)] の順にクリックします。

    Screen shot of the Azure portal, highlighting More Services, and DocumentDB (NoSQL)

  3. [新しいアカウント] ブレードで、DocumentDB アカウントに必要な構成を指定します。

    新しい [DocumentDB] ブレードのスクリーンショット

    • [ID] ボックスに、DocumentDB アカウントを識別する名前を入力します。 ID が検証されると、緑色のチェック マークが [ID] ボックスに表示されます。 この ID の値は、URI 内のホスト名になります。 ID に含めることができるのは英小文字、数字、および "-" のみで、文字数は 3 ~ 50 文字にする必要があります。 選択したエンドポイント名に documents.azure.com が追加され、これが DocumentDB アカウント エンドポイントになります。
    • [NoSQL API] ボックスで、[DocumentDB] を選択します。
    • [サブスクリプション]で、DocumentDB アカウントに使用する Azure サブスクリプションを選択します。 アカウントにサブスクリプションが 1 つしかない場合は、そのアカウントが既定で選択されます。
    • [リソース グループ]で、DocumentDB アカウントのリソース グループを選択または作成します。 既定では、新しいリソース グループが作成されます。 詳細については、 Azure Portal を使用した Azure リソースの管理に関する記事をご覧ください。
    • [場所] を使用して、DocumentDB アカウントをホストする地理的な場所を指定します。
  4. 新しい DocumentDB アカウントのオプションを構成したら、 [作成]をクリックします。 デプロイの状態を通知ハブで確認します。

    データベースの迅速な作成 - DocumentDB アカウントを作成中であることを示す通知ハブのスクリーンショット

    DocumentDB アカウントが正常に作成され、リソース グループにデプロイされたことを示す通知ハブのスクリーンショット - オンライン データベース クリエーターの通知

  5. DocumentDB アカウントが作成されたら、既定の設定で使用できる状態になります。 既定の設定を確認するには、ジャンプバーの [NoSQL (DocumentDB)] アイコンをクリックし、新しいアカウントをクリックして、リソース メニューの [既定の整合性] をクリックします。

    Azure Portal で Azure DocumentDB データベース アカウントを開く方法を示すスクリーン ショット

    DocumentDB アカウントの既定の整合性は [セッション]に設定されます。 既定の整合性を調整するには、使用可能なその他の整合性オプションのいずれかを選択します。 DocumentDB によって提供される整合性レベルの詳細については、「 DocumentDB の整合性レベル」をご覧ください。

手順 2: Visual Studio ソリューションをセットアップする

  1. コンピューターで Visual Studio 2015 を開きます。
  2. [ファイル] メニューで、[新規][プロジェクト] の順に選択します。
  3. [新しいプロジェクト] ダイアログで、[テンプレート] / [Visual C#] / [コンソール アプリケーション] の順に選択し、プロジェクトの名前を指定して、[OK] をクリックします。 [新しいプロジェクト] ウィンドウのスクリーン ショット
  4. ソリューション エクスプローラーで、Visual Studio ソリューションの下にある新しいコンソール アプリケーションを右クリックし、[NuGet パッケージの管理] をクリックします。

    プロジェクトの右クリック メニューのスクリーン ショット

  5. [Nuget] タブの [参照] をクリックし、検索ボックスに「azure documentdb」と入力します。
  6. 結果で Microsoft Azure DocumentDB を探し、[インストール] をクリックします。 DocumentDB クライアント ライブラリのパッケージ ID は Microsoft.Azure.DocumentDB です。 DocumentDB クライアント SDK を見つける NuGet メニューのスクリーン ショット

    ソリューションの変更の確認に関するメッセージが表示されたら、[OK] をクリックします。 ライセンスの同意に関するメッセージが表示されたら、[同意する] をクリックします。

そこで、 これでセットアップは終了です。 いくつかのコードの記述を開始しましょう。 このチュートリアルの完成したコード プロジェクトは GitHubにあります。

手順 3: DocumentDB アカウントに接続する

まず、Program.cs ファイルで、C# アプリケーションの先頭に以下の参照を追加します。

using System;
using System.Linq;
using System.Threading.Tasks;

// ADD THIS PART TO YOUR CODE
using System.Net;
using Microsoft.Azure.Documents;
using Microsoft.Azure.Documents.Client;
using Newtonsoft.Json;
重要

この NoSQL チュートリアルを完成させるには、上記の依存関係を追加します。

次に、これら 2 つの定数と client 変数をパブリック クラス Program の下に追加します。

public class Program
{
    // ADD THIS PART TO YOUR CODE
    private const string EndpointUrl = "<your endpoint URL>";
    private const string PrimaryKey = "<your primary key>";
    private DocumentClient client;

次に、Azure Portal に戻り、エンドポイント URL とプライマリ キーを取得します。 エンドポイント URL とプライマリ キーは、アプリケーションが接続先を認識し、DocumentDB がアプリケーションの接続を信頼するために必要です。

Azure Portal で DocumentDB アカウントに移動し、 [キー]をクリックします。

ポータルから URI をコピーし、program.cs ファイルの <your endpoint URL> に貼り付けます。 次に、ポータルからプライマリ キーをコピーし、 <your primary key>に貼り付けます。

C# コンソール アプリケーションを作成するために NoSQL チュートリアルで使用される Azure ポータルのスクリーン ショット。 アクティブなハブが強調表示され、[DocumentDB アカウント] ブレードで [キー] ボタンが強調表示され、[キー] ブレードで URI 値、プライマリ キー値、およびセカンダリ キーの値が強調表示されている DocumentDB アカウントを示します

次に、DocumentClient の新しいインスタンスを作成して、アプリケーションを起動します。

Main メソッドの下に、GetStartedDemo という新しい非同期タスクを追加します。これによって新しい DocumentClient はインスタンス化されます。

static void Main(string[] args)
{
}

// ADD THIS PART TO YOUR CODE
private async Task GetStartedDemo()
{
    this.client = new DocumentClient(new Uri(EndpointUrl), PrimaryKey);
}

次のコードを追加して、 Main メソッドから非同期タスクを実行します。 Main メソッドは例外をキャッチし、コンソールに書き込みます。

static void Main(string[] args)
{
        // ADD THIS PART TO YOUR CODE
        try
        {
                Program p = new Program();
                p.GetStartedDemo().Wait();
        }
        catch (DocumentClientException de)
        {
                Exception baseException = de.GetBaseException();
                Console.WriteLine("{0} error occurred: {1}, Message: {2}", de.StatusCode, de.Message, baseException.Message);
        }
        catch (Exception e)
        {
                Exception baseException = e.GetBaseException();
                Console.WriteLine("Error: {0}, Message: {1}", e.Message, baseException.Message);
        }
        finally
        {
                Console.WriteLine("End of demo, press any key to exit.");
                Console.ReadKey();
        }

F5 キーを押してアプリケーションを実行します。 コンソール ウィンドウの出力には、接続が確立されたことを示す、End of demo, press any key to exit. というメッセージが表示されます。 表示されたら、コンソール ウィンドウを閉じます。

お疲れさまでした。 これで、DocumentDB アカウントに接続できました。続いては、DocumentDB リソースの使用方法について説明します。

手順 4: データベースを作成する

データベースを作成するコードを追加する前に、コンソールに書き込むためのヘルパー メソッドを追加します。

WriteToConsoleAndPromptToContinue メソッドをコピーして、GetStartedDemo メソッドの後に貼り付けます。

// ADD THIS PART TO YOUR CODE
private void WriteToConsoleAndPromptToContinue(string format, params object[] args)
{
        Console.WriteLine(format, args);
        Console.WriteLine("Press any key to continue ...");
        Console.ReadKey();
}

DocumentDB データベースは、DocumentClient クラスの CreateDatabaseIfNotExistsAsync メソッドを使用して作成できます。 データベースは、コレクションに分割された JSON ドキュメント ストレージの論理上のコンテナーです。

次のコードをコピーして、GetStartedDemo メソッドのクライアントを作成する処理の後に追加してください。 これで FamilyDB というデータベースが作成されます。

private async Task GetStartedDemo()
{
    this.client = new DocumentClient(new Uri(EndpointUrl), PrimaryKey);

    // ADD THIS PART TO YOUR CODE
    await this.client.CreateDatabaseIfNotExistsAsync(new Database { Id = "FamilyDB" });

F5 キーを押してアプリケーションを実行します。

おめでとうございます。 これで、DocumentDB データベースが作成されました。

手順 5: コレクションを作成する

警告

CreateDocumentCollectionIfNotExistsAsync は、予約済みのスループットで新しいコレクションを作成します。これによって価格に影響があります。 詳細については、価格のページを参照してください。

コレクションは、DocumentClient クラスの CreateDocumentCollectionIfNotExistsAsync メソッドを使用して作成できます。 コレクションには、JSON ドキュメントのほか、関連する JavaScript アプリケーション ロジックが格納されます。

次のコードをコピーし、GetStartedDemo メソッドのデータベースを作成する処理の後に追加します。 これで、FamilyCollection というドキュメント コレクションが作成されます。

    this.client = new DocumentClient(new Uri(EndpointUrl), PrimaryKey);

    await this.client.CreateDatabaseIfNotExistsAsync(new Database { Id = "FamilyDB" });

    // ADD THIS PART TO YOUR CODE
     await this.client.CreateDocumentCollectionIfNotExistsAsync(UriFactory.CreateDatabaseUri("FamilyDB"), new DocumentCollection { Id = "FamilyCollection" });

F5 キーを押してアプリケーションを実行します。

おめでとうございます。 これで、DocumentDB ドキュメント コレクションが作成されました。

手順 6: JSON ドキュメントを作成する

ドキュメントは、DocumentClient クラスの CreateDocumentAsync メソッドを使用して作成できます。 ドキュメントは、ユーザー定義の (ユーザーが自由に定義できる) JSON コンテンツです。 ここで 1 つ以上のドキュメントを挿入できます。 データベースに保存するデータが既にある場合には、DocumentDB のデータ移行ツールを使用して、データをデータベースにインポートできます。

まず、この例の DocumentDB 内に格納するオブジェクトの Family クラスを作成する必要があります。 さらに、Family 内で使用するサブクラスとして、ParentChildPetAddress を作成します。 ドキュメントには、JSON で id としてシリアル化される Id プロパティが必要であることに注意してください。 GetStartedDemo の後に次の内部サブクラスを追加することで、これらのクラスを作成します。

FamilyParentChildPetAddress の各クラスをコピーし、WriteToConsoleAndPromptToContinue メソッドの後に貼り付けます。

private void WriteToConsoleAndPromptToContinue(string format, params object[] args)
{
    Console.WriteLine(format, args);
    Console.WriteLine("Press any key to continue ...");
    Console.ReadKey();
}

// ADD THIS PART TO YOUR CODE
public class Family
{
    [JsonProperty(PropertyName = "id")]
    public string Id { get; set; }
    public string LastName { get; set; }
    public Parent[] Parents { get; set; }
    public Child[] Children { get; set; }
    public Address Address { get; set; }
    public bool IsRegistered { get; set; }
    public override string ToString()
    {
        return JsonConvert.SerializeObject(this);
    }
}

public class Parent
{
    public string FamilyName { get; set; }
    public string FirstName { get; set; }
}

public class Child
{
    public string FamilyName { get; set; }
    public string FirstName { get; set; }
    public string Gender { get; set; }
    public int Grade { get; set; }
    public Pet[] Pets { get; set; }
}

public class Pet
{
    public string GivenName { get; set; }
}

public class Address
{
    public string State { get; set; }
    public string County { get; set; }
    public string City { get; set; }
}

CreateFamilyDocumentIfNotExists メソッドをコピーし、Address クラスの下に貼り付けます。

// ADD THIS PART TO YOUR CODE
private async Task CreateFamilyDocumentIfNotExists(string databaseName, string collectionName, Family family)
{
    try
    {
        await this.client.ReadDocumentAsync(UriFactory.CreateDocumentUri(databaseName, collectionName, family.Id));
        this.WriteToConsoleAndPromptToContinue("Found {0}", family.Id);
    }
    catch (DocumentClientException de)
    {
        if (de.StatusCode == HttpStatusCode.NotFound)
        {
            await this.client.CreateDocumentAsync(UriFactory.CreateDocumentCollectionUri(databaseName, collectionName), family);
            this.WriteToConsoleAndPromptToContinue("Created Family {0}", family.Id);
        }
        else
        {
            throw;
        }
    }
}

さらに、2 つのドキュメントを挿入します。1 つは Andersen Family のドキュメント、もう 1 つは Wakefield Family のドキュメントです。

次のコードをコピーし、GetStartedDemo メソッドのドキュメント コレクションの作成処理の後に追加してください。

await this.client.CreateDatabaseIfNotExistsAsync(new Database { Id = "FamilyDB" });

await this.client.CreateDocumentCollectionIfNotExistsAsync(UriFactory.CreateDatabaseUri("FamilyDB"), new DocumentCollection { Id = "FamilyCollection" });


// ADD THIS PART TO YOUR CODE
Family andersenFamily = new Family
{
        Id = "Andersen.1",
        LastName = "Andersen",
        Parents = new Parent[]
        {
                new Parent { FirstName = "Thomas" },
                new Parent { FirstName = "Mary Kay" }
        },
        Children = new Child[]
        {
                new Child
                {
                        FirstName = "Henriette Thaulow",
                        Gender = "female",
                        Grade = 5,
                        Pets = new Pet[]
                        {
                                new Pet { GivenName = "Fluffy" }
                        }
                }
        },
        Address = new Address { State = "WA", County = "King", City = "Seattle" },
        IsRegistered = true
};

await this.CreateFamilyDocumentIfNotExists("FamilyDB", "FamilyCollection", andersenFamily);

Family wakefieldFamily = new Family
{
        Id = "Wakefield.7",
        LastName = "Wakefield",
        Parents = new Parent[]
        {
                new Parent { FamilyName = "Wakefield", FirstName = "Robin" },
                new Parent { FamilyName = "Miller", FirstName = "Ben" }
        },
        Children = new Child[]
        {
                new Child
                {
                        FamilyName = "Merriam",
                        FirstName = "Jesse",
                        Gender = "female",
                        Grade = 8,
                        Pets = new Pet[]
                        {
                                new Pet { GivenName = "Goofy" },
                                new Pet { GivenName = "Shadow" }
                        }
                },
                new Child
                {
                        FamilyName = "Miller",
                        FirstName = "Lisa",
                        Gender = "female",
                        Grade = 1
                }
        },
        Address = new Address { State = "NY", County = "Manhattan", City = "NY" },
        IsRegistered = false
};

await this.CreateFamilyDocumentIfNotExists("FamilyDB", "FamilyCollection", wakefieldFamily);

F5 キーを押してアプリケーションを実行します。

おめでとうございます。 これで、2 つの DocumentDB ドキュメントが作成されました。

C# コンソール アプリケーションを作成するために NoSQL チュートリアルで使用されるアカウント、オンライン データベース、コレクション、およびドキュメントの間の階層関係を示す図

手順 7: DocumentDB リソースをクエリする

DocumentDB では、各コレクションに格納された JSON ドキュメントに対するリッチ クエリをサポートしています。 次のサンプル コードは、前の手順で挿入したドキュメントに対して実行できる、さまざまなクエリを示しています。DocumentDB SQL 構文と LINQ の両方が使用されています。

ExecuteSimpleQuery メソッドをコピーし、CreateFamilyDocumentIfNotExists メソッドの後に貼り付けます。

// ADD THIS PART TO YOUR CODE
private void ExecuteSimpleQuery(string databaseName, string collectionName)
{
    // Set some common query options
    FeedOptions queryOptions = new FeedOptions { MaxItemCount = -1 };

        // Here we find the Andersen family via its LastName
        IQueryable<Family> familyQuery = this.client.CreateDocumentQuery<Family>(
                UriFactory.CreateDocumentCollectionUri(databaseName, collectionName), queryOptions)
                .Where(f => f.LastName == "Andersen");

        // The query is executed synchronously here, but can also be executed asynchronously via the IDocumentQuery<T> interface
        Console.WriteLine("Running LINQ query...");
        foreach (Family family in familyQuery)
        {
                Console.WriteLine("\tRead {0}", family);
        }

        // Now execute the same query via direct SQL
        IQueryable<Family> familyQueryInSql = this.client.CreateDocumentQuery<Family>(
                UriFactory.CreateDocumentCollectionUri(databaseName, collectionName),
                "SELECT * FROM Family WHERE Family.LastName = 'Andersen'",
                queryOptions);

        Console.WriteLine("Running direct SQL query...");
        foreach (Family family in familyQueryInSql)
        {
                Console.WriteLine("\tRead {0}", family);
        }

        Console.WriteLine("Press any key to continue ...");
        Console.ReadKey();
}

次のコードをコピーし、GetStartedDemo メソッドの 2 つ目のドキュメント作成処理の後に追加します。

await this.CreateFamilyDocumentIfNotExists("FamilyDB", "FamilyCollection", wakefieldFamily);

// ADD THIS PART TO YOUR CODE
this.ExecuteSimpleQuery("FamilyDB", "FamilyCollection");

F5 キーを押してアプリケーションを実行します。

おめでとうございます。 これで、DocumentDB コレクションに対するクエリが実行されました。

次の図では、作成したコレクションに対して DocumentDB SQL クエリ構文がどのように呼び出されるか、および同じロジックが LINQ クエリにも適用されることを示します。

C# コンソール アプリケーションを作成するために NoSQL チュートリアルで使用されるクエリの範囲と意味を示す図

DocumentDB クエリのスコープは既に 1 つのコレクションに設定されているので、クエリでは FROM キーワードを省略できます。 したがって、"FROM Families f" は "FROM root r" または他の任意の変数名に置き換えることができます。 DocumentDB は、Families、root、または任意の変数名が、既定で現在のコレクションを参照しているものと推測します。

手順 8: JSON ドキュメントを置換する

DocumentDB は、JSON ドキュメントの置換をサポートします。

ReplaceFamilyDocument メソッドをコピーし、ExecuteSimpleQuery メソッドの後に貼り付けます。

// ADD THIS PART TO YOUR CODE
private async Task ReplaceFamilyDocument(string databaseName, string collectionName, string familyName, Family updatedFamily)
{
     await this.client.ReplaceDocumentAsync(UriFactory.CreateDocumentUri(databaseName, collectionName, familyName), updatedFamily);
     this.WriteToConsoleAndPromptToContinue("Replaced Family {0}", familyName);
}

次のコードをコピーし、GetStartedDemo メソッドの末尾にあるクエリ実行処理の後に貼り付けます。 ドキュメントを置換した後に、同じクエリが実行され、変更されたドキュメントが表示されます。

await this.CreateFamilyDocumentIfNotExists("FamilyDB", "FamilyCollection", wakefieldFamily);

this.ExecuteSimpleQuery("FamilyDB", "FamilyCollection");

// ADD THIS PART TO YOUR CODE
// Update the Grade of the Andersen Family child
andersenFamily.Children[0].Grade = 6;

await this.ReplaceFamilyDocument("FamilyDB", "FamilyCollection", "Andersen.1", andersenFamily);

this.ExecuteSimpleQuery("FamilyDB", "FamilyCollection");

F5 キーを押してアプリケーションを実行します。

おめでとうございます。 これで、DocumentDB ドキュメントが置換されました。

手順 9: JSON ドキュメントを削除する

DocumentDB は、JSON ドキュメントの削除をサポートしています。

DeleteFamilyDocument メソッドをコピーし、ReplaceFamilyDocument メソッドの後に貼り付けます。

// ADD THIS PART TO YOUR CODE
private async Task DeleteFamilyDocument(string databaseName, string collectionName, string documentName)
{
     await this.client.DeleteDocumentAsync(UriFactory.CreateDocumentUri(databaseName, collectionName, documentName));
     Console.WriteLine("Deleted Family {0}", documentName);
}

次のコードをコピーし、GetStartedDemo メソッドの末尾にある 2 つ目のクエリ実行処理の後に貼り付けます。

await this.ReplaceFamilyDocument("FamilyDB", "FamilyCollection", "Andersen.1", andersenFamily);

this.ExecuteSimpleQuery("FamilyDB", "FamilyCollection");

// ADD THIS PART TO CODE
await this.DeleteFamilyDocument("FamilyDB", "FamilyCollection", "Andersen.1");

F5 キーを押してアプリケーションを実行します。

おめでとうございます。 これで、DocumentDB ドキュメントが削除されました。

手順 10: データベースを削除する

作成したデータベースを削除すると、データベースとすべての子リソース (コレクション、ドキュメントなど) が削除されます。

データベース全体とすべての子リソースを削除するために、次のコードをコピーし、GetStartedDemo メソッドのドキュメントの削除処理の後に貼り付けます。

this.ExecuteSimpleQuery("FamilyDB", "FamilyCollection");

await this.DeleteFamilyDocument("FamilyDB", "FamilyCollection", "Andersen.1");

// ADD THIS PART TO CODE
// Clean up/delete the database
await this.client.DeleteDatabaseAsync(UriFactory.CreateDatabaseUri("FamilyDB"));

F5 キーを押してアプリケーションを実行します。

おめでとうございます。 これで、DocumentDB データベースが作成されました。

手順 11: C# コンソール アプリケーションの全体的な実行の流れ

Visual Studio で F5 キーを押して、デバッグ モードでアプリケーションをビルドします。

開始したアプリケーションの出力が表示されます。 出力では追加したクエリの結果が表示されます。次の例のようなものになるはずです。

Created FamilyDB
Press any key to continue ...
Created FamilyCollection
Press any key to continue ...
Created Family Andersen.1
Press any key to continue ...
Created Family Wakefield.7
Press any key to continue ...
Running LINQ query...
    Read {"id":"Andersen.1","LastName":"Andersen","District":"WA5","Parents":[{"FamilyName":null,"FirstName":"Thomas"},{"FamilyName":null,"FirstName":"Mary Kay"}],"Children":[{"FamilyName":null,"FirstName":"Henriette Thaulow","Gender":"female","Grade":5,"Pets":[{"GivenName":"Fluffy"}]}],"Address":{"State":"WA","County":"King","City":"Seattle"},"IsRegistered":true}
Running direct SQL query...
    Read {"id":"Andersen.1","LastName":"Andersen","District":"WA5","Parents":[{"FamilyName":null,"FirstName":"Thomas"},{"FamilyName":null,"FirstName":"Mary Kay"}],"Children":[{"FamilyName":null,"FirstName":"Henriette Thaulow","Gender":"female","Grade":5,"Pets":[{"GivenName":"Fluffy"}]}],"Address":{"State":"WA","County":"King","City":"Seattle"},"IsRegistered":true}
Replaced Family Andersen.1
Press any key to continue ...
Running LINQ query...
    Read {"id":"Andersen.1","LastName":"Andersen","District":"WA5","Parents":[{"FamilyName":null,"FirstName":"Thomas"},{"FamilyName":null,"FirstName":"Mary Kay"}],"Children":[{"FamilyName":null,"FirstName":"Henriette Thaulow","Gender":"female","Grade":6,"Pets":[{"GivenName":"Fluffy"}]}],"Address":{"State":"WA","County":"King","City":"Seattle"},"IsRegistered":true}
Running direct SQL query...
    Read {"id":"Andersen.1","LastName":"Andersen","District":"WA5","Parents":[{"FamilyName":null,"FirstName":"Thomas"},{"FamilyName":null,"FirstName":"Mary Kay"}],"Children":[{"FamilyName":null,"FirstName":"Henriette Thaulow","Gender":"female","Grade":6,"Pets":[{"GivenName":"Fluffy"}]}],"Address":{"State":"WA","County":"King","City":"Seattle"},"IsRegistered":true}
Deleted Family Andersen.1
End of demo, press any key to exit.

ご利用ありがとうございます。 この NoSQL チュートリアルを完了し、実用的な C# コンソール アプリケーションを入手しました。

完全な NoSQL チュートリアル ソリューションを入手する

このチュートリアルの手順を実行する時間がない場合や、コード サンプルをダウンロードするだけの場合は、GitHub から入手できます。

GetStarted ソリューションをビルドするには、以下のものが必要です。

Visual Studio で DocumentDB .NET SDK への参照を復元するには、ソリューション エクスプローラーで GetStarted ソリューションを右クリックし、[NuGet パッケージの復元を有効にする] をクリックします。 次に、「 DocumentDB アカウントへの接続」の説明に従って、App.config ファイルの EndpointUrl と AuthorizationKey の値を更新します。

以上です。ビルドすれば完了です。

次のステップ