Atributos de DynamoDB - Amazon DynamoDB

Atributos de DynamoDB

En esta sección se describen los atributos que ofrece el modelo de persistencia de objetos para que pueda mapear las clases y propiedades a tablas y atributos de DynamoDB.

nota

En los atributos siguientes, solo son obligatorios DynamoDBTable y DynamoDBHashKey.

DynamoDBGlobalSecondaryIndexHashKey

Mapea una propiedad de clase a la clave de partición de un índice secundario global. Use este atributo si necesita Query un índice secundario global.

DynamoDBGlobalSecondaryIndexRangeKey

Mapea una propiedad de clase a la clave de ordenación de un índice secundario global. Use este atributo si tiene que utilizar una operación Query en un índice secundario global y desea refinar los resultados mediante la clave de ordenación del índice.

DynamoDBHashKey

Mapea una propiedad de clase a la clave de partición de la clave principal de la tabla. Los atributos de clave principal no pueden ser un tipo de colección.

En los siguientes ejemplos de código C# se mapea la clase Book a la tabla ProductCatalog y la propiedad Id a la clave de partición de la clave principal de la tabla.

[DynamoDBTable("ProductCatalog")] public class Book { [DynamoDBHashKey] public int Id { get; set; } // Additional properties go here. }

DynamoDBIgnore

Indica que la propiedad asociada debe pasarse por alto. Si no desea guardar ninguna de las propiedades de clase, puede agregar este atributo para indicar a DynamoDBContext que no incluya esta propiedad cuando guarde objetos en la tabla.

DynamoDBLocalSecondaryIndexRangeKey

Mapea una propiedad de clase a la clave de ordenación de un índice secundario local. Use este atributo si tiene que utilizar una operación Query en un índice secundario local y desea refinar los resultados mediante la clave de ordenación del índice.

DynamoDBProperty

Mapea una propiedad de clase a un atributo de tabla. Si la propiedad de clase se mapea al atributo de tabla con el mismo nombre, no es preciso especificarlo. Sin embargo, si los nombres no son iguales, puede utilizar esta etiqueta para realizar el mapeo. En la siguiente instrucción de C#, DynamoDBProperty mapea la propiedad BookAuthors al atributo Authors de la tabla.

[DynamoDBProperty("Authors")] public List<string> BookAuthors { get; set; }

DynamoDBContext utiliza esta información de mapeo para crear el atributo Authors al guardar datos de objetos en la tabla correspondiente.

DynamoDBRenamable

Especifica un nombre alternativo para una propiedad de clase. Esto resulta útil si va a escribir un convertidor personalizado para mapear datos arbitrarios a una tabla de DynamoDB cuando el nombre de una propiedad de clase sea distinto del nombre del atributo de tabla.

DynamoDBRangeKey

Mapea una propiedad de clase a la clave de ordenación de la clave principal de la tabla. Si la tabla tiene una clave principal compuesta (clave de partición y clave de ordenación), entonces debe especificar ambos atributos, DynamoDBHashKey y DynamoDBRangeKey, en el mapeo de clase.

Por ejemplo, en el ejemplo de tabla Reply, la clave principal consta de la clave de partición Id y de la clave de ordenación Replenishment. En el siguiente ejemplo de código C# se mapea la clase Reply a la tabla Reply. La definición de clase también indica que dos de sus propiedades se mapean a la clave principal.

Para obtener más información acerca de ejemplos de tablas, consulte Creación de tablas y carga de datos para ejemplos de código en DynamoDB.

[DynamoDBTable("Reply")] public class Reply { [DynamoDBHashKey] public int ThreadId { get; set; } [DynamoDBRangeKey] public string Replenishment { get; set; } // Additional properties go here. }

DynamoDBTable

Identifica la tabla de destino de DynamoDB a la que se mapea la clase. Por ejemplo, en el siguiente ejemplo de código C# se mapea la clase Developer a la tabla People de DynamoDB.

[DynamoDBTable("People")] public class Developer { ...}

Este atributo se puede heredar o anular.

  • El atributo DynamoDBTable se puede heredar. En el ejemplo anterior, si agrega una nueva clase, Lead, que hereda de la clase Developer, también se mapea a la tabla People. Ambos objetos, Developer y Lead, se almacenan en la tabla People.

  • El atributo DynamoDBTable también se puede anular. En el siguiente ejemplo de código C#, la clase Manager hereda de la clase Developer. Sin embargo, la adición explícita del atributo DynamoDBTable mapea la clase a otra tabla (Managers).

    [DynamoDBTable("Managers")] public class Manager : Developer { ...}

Puede agregar el parámetro opcional, LowerCamelCaseProperties, para solicitar que DynamoDB cambie a minúscula la primera letra del nombre de la propiedad cuando almacene los objetos en una tabla, como se muestra en el siguiente fragmento de código C#.

[DynamoDBTable("People", LowerCamelCaseProperties=true)] public class Developer { string DeveloperName; ... }

Al guardar instancias de la clase Developer, DynamoDBContext guarda la propiedad DeveloperName como developerName.

DynamoDBVersion

Identifica una propiedad de clase para almacenar el número de versión del elemento. Para obtener más información sobre el control de versiones, consulte Bloqueo positivo mediante un número de versión con DynamoDB mediante el modelo de persistencia de objetos de AWS SDK for .NET.