amazon-dynamodb - PocoDynamo - 使用现有表
问题描述
假设我在 DynamoDB 中有一个已经存在的表,我如何将它注册到 PocoDynamo
“SomeTable”类型指向 prod 和 stg 环境中的不同表。有没有办法用表名注册类型或以其他方式设置表名。
_pocoClient.PutItem<SomeTable>(item)
有没有办法将现有表与 PocoDynamo 一起使用?
注意:我使用 terraform 创建表,不想使用 PocoDynamo 创建基础设施。
解决方案
在PocoDynamo 中,您只需要调用PocoDynamoRegisterTable
来“注册”表及其架构,即:
db.RegisterTable<SomeTable>();
您可以通过以下方式注册表,以编程方式更改表名(在调用 InitSchema() 之前启动时):
var metadata = DynamoMetadata.RegisterTable<SomeTable>();
metadata.Name = "DbTableName";
注册和配置表后,调用InitSchema
只会创建不存在的表:
db.InitSchema();
如果您希望 DynamoDB 表的名称与 .NET 类型名称不同,您可以使用Alias 属性,例如:
[Alias("DbTableName")]
public class SomeTable
{
//..
}
注意:PocoDynamo 是一个代码优先类型化的 .NET 客户端,这意味着它期望 DynamoDB 表完全按照它的创建方式创建,它对于映射到使用不同约定生成的现有表没有用处。
推荐阅读
- python - django 服务器拒绝本地主机上的连接
- swift - 使用 NSTintConfiguration 自定义侧边栏
- reactjs - 如何在数组中创建一个新对象
- javascript - 覆盖类实例方法有什么问题吗?
- php - 如何使用 VUE 在 Laravel Blade 中显示数据库信息
- algorithm - 按位与和按位或对数字进行运算
- vaadin - Vaadin 14 TreeGrid - 不能多次添加同一个项目
- javascript - Discord bot Embed 未按我的意愿返回文本
- symbols - 当我尝试在pycharm中输入反斜杠时获取日元符号
- c - 如何在 3D 坐标系中绘制线条