wjv*_*vic 5 c# amazon-web-services amazon-dynamodb .net-core
我目前在Web服务类中,对于我正在进行的项目,我决定使用.NET Core平台创建Web API,将DynamoDB作为数据库.
到目前为止,让Dynamo使用.NET Core有点困难,因为我似乎找不到太多关于让两者一起工作的文章.我目前停留在如何从特定表中检索所有项目.
我一直在阅读Dynamo文档,并决定使用Object Persistence模型.
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.AddDefaultAWSOptions(Configuration.GetAWSOptions());
services.AddAWSService<IAmazonDynamoDB>();
}
Run Code Online (Sandbox Code Playgroud)
我在Startup文件的Configure Services方法中注入DynamoDB上下文.然后我像这样将它注入控制器
DynamoDBContext context;
public ValuesController(IAmazonDynamoDB context)
{
this.context = new DynamoDBContext(context);
}
Run Code Online (Sandbox Code Playgroud)
同样,我绝不是这两种技术的专家,所以如果有更好的方法,请告诉我.
我还有一个我从DynamoDB文档中获得的简单模型.
[DynamoDBTable("AnimalsInventory")]
public class Item
{
[DynamoDBHashKey]
public Guid Id { get; set; }
[DynamoDBRangeKey]
public string Type { get; set; }
public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
在这篇文章中
https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBContext.QueryScan.html
它说你可以使用Query/Scan方法从数据库中检索项目,但不幸的是,.NET Core平台不支持这些方法.在.NET Core上,它们被称为QueryAsync和ScanAsync,我想也许我可以在没有任何参数的情况下调用该方法,它只会检索表中的任何项目,但这不起作用.看起来这个方法特别适用于某些扫描条件,所以我不确定我是否使用了错误的方法,或者是否无法从表中检索任何和所有项目.
Mik*_*scu 13
该QueryAsync和ScanAsync只是异步式的方法映射到DynamoDB 查询和扫描操作.
您应该能够使用以下内容扫描表格中的所有项目:
var conditions = new List<ScanCondition>();
// you can add scan conditions, or leave empty
var allDocs = await context.ScanAsync<Item>(conditions).GetRemainingAsync();
Run Code Online (Sandbox Code Playgroud)
我建议从Scan API的文档开始.它将解释没有任何客户端细节的实际API.您将学习分页,过滤表达式等.然后,如果您不熟悉async/await,请阅读.最后将它们放在一起,您应该能够在自己的应用程序中使用QueryAsync和ScanAsync.
| 归档时间: |
|
| 查看次数: |
6995 次 |
| 最近记录: |