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 claseDeveloper
, también se mapea a la tablaPeople
. Ambos objetos,Developer
yLead
, se almacenan en la tablaPeople
. -
El atributo
DynamoDBTable
también se puede anular. En el siguiente ejemplo de código C#, la claseManager
hereda de la claseDeveloper
. Sin embargo, la adición explícita del atributoDynamoDBTable
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.