AWS DynamoDB - 在对象持久性模型中动态设置 DynamoDBTable

ama*_*man 2 c# asp.net-core

我有一个使用 AWSDynamodDb 的 .NET Core 2.0 项目(您可以在此处忽略 dynamo db,因为问题与 dynamodDB 无关)

我有以下实体类:

[DynamoDBTable("TableName")]
public class MyData
{
    [DynamoDBHashKey]
    public string Id{ get; set; }

    public string Name{ get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我想要的是“TableName”——传递给属性的值——从我的 appSettings.json 文件中填充。

 {
    "TableName": "NewTable" 
 }
Run Code Online (Sandbox Code Playgroud)

通过查看 appSettings 文件中的密钥,是否可以在运行时获得此值?

- 更新 -

我正在从我的控制器调用“MyData”类,如下所示:

  var response = await context.ScanAsync<MyData>(conditions).GetRemainingAsync();
Run Code Online (Sandbox Code Playgroud)

ama*_*man 6

仅对于遇到的其他人,我能够解决此问题,如下所示:

从模型中删除表名。

然后使用下面的代码动态设置表名

    public static DynamoDBOperationConfig GetDynamoDbOperationConfig(string dynamoDbTable)
    {
        DynamoDBOperationConfig config = new DynamoDBOperationConfig() { OverrideTableName = dynamoDbTable };
        return config;
    } 
Run Code Online (Sandbox Code Playgroud)

每当我们调用针对 dynamo db 的任何操作(如扫描、保存、删除等)时,我们都可以调用此函数。