Aracılığıyla paylaş


.NET kullanarak NoSQL için Azure Cosmos DB'de öğe oluşturma

UYGULANANLAR: NoSQL

Azure Cosmos DB'deki öğeler, kapsayıcı içinde depolanan belirli bir varlığı temsil eder. NoSQL API'sinde bir öğe, benzersiz tanımlayıcıya sahip JSON biçimli verilerden oluşur.

Öğe için benzersiz tanımlayıcı oluşturma

Benzersiz tanımlayıcı, kapsayıcı içindeki bir öğeyi tanımlayan ayrı bir dizedir. id özelliği, yeni bir JSON belgesi oluştururken gereken tek özelliktir. Örneğin, bu JSON belgesi Azure Cosmos DB'de geçerli bir öğedir:

{
  "id": "unique-string-2309509"
}

Kapsayıcı kapsamında iki öğe aynı benzersiz tanımlayıcıyı paylaşamaz.

Önemli

id özelliği büyük/küçük harfe duyarlıdır. , , IdiDve _id adlı IDözellikler rastgele bir JSON özelliği olarak değerlendirilir.

Oluşturulduktan sonra, bir öğenin URI'si şu biçimdedir:

https://<cosmos-account-name>.documents.azure.com/dbs/<database-name>/docs/<item-resource-identifier>

URI kullanarak öğeye başvururken, alan yerine sistem tarafından oluşturulan kaynak tanımlayıcısını id kullanın. NoSQL için Azure Cosmos DB'de sistem tarafından oluşturulan öğe özellikleri hakkında daha fazla bilgi için bkz. Öğenin özellikleri

Öğe oluşturma

Not

Bu makaledeki örneklerde, Product adlı verilerinizi temsil etmek için zaten bir C# türü tanımladığınız varsayılır:

// C# record type for items in the container
public record Product(
    string id,
    string category,
    string name,
    int quantity,
    bool sale
);

Örneklerde, newItem adlı Product türünde yeni bir nesne oluşturduğunuz da varsayılır:

// Create new item and add to container
Product item = new(
    id: "68719518388",
    category: "gear-surf-surfboards",
    name: "Sunnox Surfboard",
    quantity: 8,
    sale: true
);

Öğe oluşturmak için aşağıdaki yöntemlerden birini çağırın:

Öğeyi zaman uyumsuz olarak oluşturma

Aşağıdaki örnek zaman uyumsuz olarak yeni bir öğe oluşturur:

Product createdItem = await container.CreateItemAsync<Product>(
    item: item,
    partitionKey: new PartitionKey("gear-surf-surfboards")
);

Yöntemi, Container.CreateItemAsync<> mevcut bir öğenin benzersiz tanımlayıcısıyla çakışma varsa bir özel durum oluşturur. Olası özel durumlar hakkında daha fazla bilgi edinmek için bkz CreateItemAsync<> . özel durumlar.

Öğeyi zaman uyumsuz olarak değiştirme

Aşağıdaki örnek, var olan bir öğenin yerini zaman uyumsuz olarak alır:

Product replacedItem = await container.ReplaceItemAsync<Product>(
    item: item,
    id: "68719518388",
    partitionKey: new PartitionKey("gear-surf-surfboards")
);

yöntemi, Container.ReplaceItemAsync<> parametrenin benzersiz tanımlayıcısı id ile eşleşmesi için parametre için sağlanan dizeyi item gerektirir.

Öğeyi zaman uyumsuz olarak oluşturma veya değiştirme

Aşağıdaki örnek yeni bir öğe oluşturur veya bir öğe aynı benzersiz tanımlayıcıyla zaten varsa var olan bir öğeyi değiştirir:

Product upsertedItem = await container.UpsertItemAsync<Product>(
    item: item,
    partitionKey: new PartitionKey("gear-surf-surfboards")
);

yöntemi, Container.UpsertItemAsync<> mevcut bir öğeyle çakışma olup olmadığını belirlemek ve öğeyi uygun şekilde değiştirmek için parametresinin benzersiz tanımlayıcısını item kullanır.

Sonraki adımlar

Artık çeşitli öğeler oluşturduğunuza göre, bir öğeyi okumak için sonraki kılavuzu kullanın.