阅读 DynamoDB 文档,似乎没有办法在插入数据时不列出每个属性名称/值。
例如,要插入一个用户,我需要这样做:
var putRequest = new PutItemRequest
{
TableName = UsersTableName,
Item = new Dictionary<string, AttributeValue>()
{
{"HashId", new AttributeValue() { S = user.Id.ToString() }},
{"RangeId", new AttributeValue() { S = user.Email }},
{"CreatedUtc", new AttributeValue() { S = user.CreatedUtc.ToString() }},
{"DeactivatedUtc", new AttributeValue() { S = user.DeactivatedUtc.ToString() }},
{"Timezone", new AttributeValue() { S = "US Eastern Standard Time" }},
}
};
var result = DbClient.PutItem(putRequest);
我喜欢 RavenDb 模型,它接受任何 POCO 并根据类的公共字段名称自行确定“属性”名称。
我的问题是:我需要这样做吗?是否可以仅通过传递对象来写入数据?
如果不是,我会写一些东西:我将使用反射来找出名称和类型,并PutItemRequest.Item
基于它生成字典。如果没有必要,我宁愿不要。
与往常一样,提前感谢您的帮助!