PocoDynamo - 使用现有 table

PocoDynamo - use existing table

假设我在 DynamoDB 中已经有一个 table,我该如何使用 PocoDynamo 注册它

类型 "SomeTable" 在 prod 和 stg 环境中指向不同的 table。有没有办法用 table 名称注册类型或以其他方式设置 table 名称。

_pocoClient.PutItem<SomeTable>(item)

有没有办法将现有的 table 与 PocoDynamo 一起使用?

注意:我使用 terraform 创建 tables,不想使用 PocoDynamo 创建基础设施。

PocoDynamo 中,您只需调用 RegisterTable 到 "register" table 及其与 PocoDynamo 的架构,即:

db.RegisterTable<SomeTable>();

您可以通过以下方式注册 table 以编程方式更改 table 名称(在启动时调用 InitSchema()):

var metadata = DynamoMetadata.RegisterTable<SomeTable>();
metadata.Name = "DbTableName";

注册和配置table后,调用InitSchema只会创建尚不存在的table:

db.InitSchema();

如果您希望 DynamoDB Table 具有与 .NET 类型名称不同的名称,您可以使用 Alias attribute,例如:

[Alias("DbTableName")]
public class SomeTable
{
    //..
}

注意:PocoDynamo 是一个代码优先类型的 .NET 客户端,这意味着它希望 DynamoDB Tables 完全按照它的创建方式创建,它对于映射到现有 tables 使用不同的约定生成。