.NET을 사용하여 Azure Cosmos DB for Table에서 항목 만들기
적용 대상: 테이블
Azure Cosmos DB의 항목은 테이블 내에 저장된 특정 엔터티를 나타냅니다. API for Table에서 항목은 행 및 파티션 키의 복합으로 고유하게 식별되는 키-값 쌍 세트로 구성됩니다.
항목에 대한 고유 식별자 만들기
프로그래밍 방식으로 ****라고 하는 고유 식별자는 테이블 내의 항목을 식별하는 고유 문자열입니다. 각 항목에는 항목에 대한 논리 파티션을 확인하는 데 사용되는 파티션 키 값도 포함됩니다. 테이블 내에서 새 항목을 만드는 경우 두 키가 모두 필요합니다.
테이블 범위 내에서 두 항목은 동일한 행 키와 파티션 키를 모두 공유할 수 없습니다.
항목 만들기
TableEntity
클래스는 키-값 쌍의 임의 사전에서 새 항목을 쉽게 만들 수 있도록 고유하게 설계된 사전의 제네릭 구현입니다.
다음 전략 중 하나를 사용하여 테이블에 만들려는 항목을 모델링합니다.
기본 제공 클래스 사용
TableEntity 클래스의 (string rowKey, string partitionKey)
생성자를 사용하면 필수 속성만 있는 항목을 빠르게 만들 수 있습니다. 그런 다음, Add
메서드를 사용하여 키-값 쌍을 항목에 추가할 수 있습니다.
예를 들어 먼저 생성자에서 행 및 파티션 키를 지정한 다음, 새 키-값 쌍을 사전에 추가하여 TableEntity 클래스의 새 인스턴스를 만들 수 있습니다.
// Create new item using composite key constructor
TableEntity item1 = new(
rowKey: "68719518388",
partitionKey: "gear-surf-surfboards"
);
// Add properties to item
item1.Add("Name", "Sunnox Surfboard");
item1.Add("Quantity", 8);
item1.Add("Sale", true);
// Add new item to server-side table
await tableClient.AddEntityAsync<TableEntity>(item1);
TableEntity 클래스의 (IDictionary<string, object>)
생성자는 기존 사전을 테이블에 추가할 준비가 된 항목으로 변환합니다.
예를 들어 사전을 TableEntity 클래스의 새 인스턴스에 전달할 수 있습니다.
// Create dictionary
Dictionary<string, object> properties = new()
{
{ "RowKey", "68719518388" },
{ "PartitionKey", "gear-surf-surfboards" },
{ "Name", "Sunnox Surfboard" },
{ "Quantity", 8 },
{ "Sale", true }
};
// Create new item using dictionary constructor
TableEntity item2 = new(
values: properties
);
// Add new item to server-side table
await tableClient.AddEntityAsync<TableEntity>(item2);
TableClient.AddEntityAsync<>
메서드는 TableEntity 형식의 매개 변수를 사용한 다음, 서버 쪽 항목을 테이블에 만듭니다.
인터페이스 구현
참고 항목
이 섹션의 예제에서는 Product라는 데이터를 나타내는 C# 형식을 이미 정의했다고 가정합니다.
// C# record type for items in the table
public record Product : ITableEntity
{
public string RowKey { get; set; } = default!;
public string PartitionKey { get; set; } = default!;
public string Name { get; init; } = default!;
public int Quantity { get; init; }
public bool Sale { get; init; }
public ETag ETag { get; set; } = default!;
public DateTimeOffset? Timestamp { get; set; } = default!;
}
TableClient.AddEntityAsync<>
메서드는 ITableEntity
인터페이스를 구현하는 모든 형식의 매개 변수를 사용합니다. 인터페이스에는 이미 필수 RowKey
및 PartitionKey
속성이 포함되어 있습니다.
예를 들어 ITableEntity 인터페이스에서 최소한의 모든 필수 속성을 구현하는 새 개체를 만들 수 있습니다.
// Create new item
Product item = new()
{
RowKey = "68719518388",
PartitionKey = "gear-surf-surfboards",
Name = "Sunnox Surfboard",
Quantity = 8,
Sale = true
};
그런 다음, 서버 쪽 항목을 만드는 AddEntityAsync<>
메서드에 이 개체를 전달할 수 있습니다.
// Add new item to server-side table
await tableClient.AddEntityAsync<Product>(item);
다음 단계
이제 다양한 항목을 만들었으므로 다음 가이드를 사용하여 항목을 읽습니다.