You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

是否存在与DynamoDBMapper对应的.NET/C#等效组件?

在.NET/C#中实现基于数据注解生成DynamoDB建表请求

在.NET的Amazon DynamoDB SDK里,对应Java DynamoDBMapper的是**DynamoDBContext**类,同样支持通过实体类的数据注解自动生成CreateTableRequest,具体实现步骤如下:

1. 定义带数据注解的实体类

先给你的实体类添加DynamoDB相关注解,对应Java里的POJO注解逻辑:

using Amazon.DynamoDBv2.DataModel;

[DynamoDBTable("TestTable")] // 指定表名,对应Java的@DynamoDBTable
public class TestClass
{
    [DynamoDBHashKey] // 哈希键,对应Java的@DynamoDBHashKey
    public string Id { get; set; }

    [DynamoDBRangeKey] // 可选范围键,对应Java的@DynamoDBRangeKey
    public DateTime CreatedAt { get; set; }

    [DynamoDBProperty] // 普通属性,对应Java的@DynamoDBAttribute
    public string Name { get; set; }
}

2. 生成并执行建表请求

通过DynamoDBContext生成建表请求,补充吞吐量配置后执行创建操作:

using Amazon.DynamoDBv2;
using Amazon.DynamoDBv2.Model;

// 创建DynamoDB客户端
var dynamoDbClient = new AmazonDynamoDBClient();

// 初始化DynamoDBContext,对应Java的DynamoDBMapper
var context = new DynamoDBContext(dynamoDbClient);

// 基于实体类自动生成CreateTableRequest
var createTableRequest = context.GenerateCreateTableRequest<TestClass>();

// 设置预置吞吐量(和Java示例逻辑一致,此配置无法通过实体注解指定)
createTableRequest.ProvisionedThroughput = new ProvisionedThroughput
{
    ReadCapacityUnits = 5,
    WriteCapacityUnits = 5
};

// 可选:若使用按需计费模式,替换上述吞吐量设置
// createTableRequest.BillingMode = BillingMode.PAY_PER_REQUEST;

// 执行建表请求
await dynamoDbClient.CreateTableAsync(createTableRequest);

关键说明

  • DynamoDBContext.GenerateCreateTableRequest<T>会自动解析实体类上的注解,生成包含表名、主键结构、属性定义的请求,和Java的mapper.generateCreateTableRequest逻辑完全对应。
  • 无论是预置吞吐量还是按需计费模式,都需要在生成请求后手动配置,无法通过实体注解指定。

内容的提问来源于stack exchange,提问作者user246392

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 12:24:48