Gle*_*ven 6 .net amazon-web-services amazon-dynamodb
我正在使用.NET SDK for AWS DynamoDB运行扫描.我这样做:
var result = context.Scan<Table>(new[] { new ScanCondition("AttributeName", ScanOperator.Equal, variable) }
Run Code Online (Sandbox Code Playgroud)
这引发了异常
"无法找到属性[AttributeName]的存储信息"
该属性AttributeName
是一个非索引属性,当前其中几乎没有任何值(它是我最近添加的新属性).
我用谷歌搜索了错误,我想出的是sdk源代码,我可以深入研究,如果没有人可以启发我的话.
Dha*_*777 10
这也吸引了我,分享我的发现希望它可以帮助别人,我正在使用 C# 对象持久模型。
DynamoDb 中的列名称采用驼峰式大小写。C# 类属性则不然。
[DynamoDBProperty("artist")]
[DynamoDBHashKey]
public string Artist { get; set; }
[DynamoDBProperty("songTitle")]
[DynamoDBRangeKey]
public string SongTitle { get; set; }
Run Code Online (Sandbox Code Playgroud)
因此以下会引发错误,
scanConditions.Add(new ScanCondition("songTitle", ScanOperator.BeginsWith, searchReq.SongTitle));
if (!string.IsNullOrEmpty(searchReq.Difficulty))
Run Code Online (Sandbox Code Playgroud)
修理,
scanConditions.Add(new ScanCondition("SongTitle", ScanOperator.BeginsWith, searchReq.SongTitle));
if (!string.IsNullOrEmpty(searchReq.Difficulty))
Run Code Online (Sandbox Code Playgroud)
该方法仅接受使用属性映射到该表的DynamoDBContext.Scan<T>()
类的公共属性的名称。将无法识别表中未映射的属性。T
[DynamoDBTable()]
Scan<T>
T
如果该类没有该名称的公共属性,或者该属性被显式标记为 ,则将引发该异常[DynamoDBIgnore]
。
如果需要扫描表中未建模的表属性,可以使用 提供的低级 API AmazonDynamoDBClient.Scan()
,但它不会返回 T 类型的对象。
归档时间: |
|
查看次数: |
1167 次 |
最近记录: |