首页 > 解决方案 > 如何从 F# 创建 DynamoDB 条目?

问题描述

AWS 文档页面上有以下代码(我简化了):

Table table = Table.LoadTable(client, "ProductCatalog");
var book = new Document();
book["Id"] = 101;
book["Title"] = "Book 101 Title";
book["ISBN"] = "11-11-11-11";
table.PutItem(book);

当我从 Fsharp 尝试相同时,我收到一个错误:

let seqNumberDocument = Document()
seqNumberDocument.["key"] <- 101

类型约束不匹配。“int”类型与“DynamoDBEntry”类型不兼容

有没有办法让它在 Fsharp 中工作?

标签: f#amazon-dynamodb

解决方案


您需要DynamoDBEntry像这样调用隐式转换:

let seqNumberDocument = Document()
seqNumberDocument.["key"] <- DynamoDBEntry.op_Implicit 101

F# 本身不支持设计上的隐式转换。

如果这看起来有点难看,您可以使用替代方法:

let v2 = DynamoDBEntryConversion.V2

let seqNumberDocument = Document()
seqNumberDocument.["key"] <- v2.ConvertToEntry 101

推荐阅读