Azure 函数:如何查看 Table 存储中是否存在记录
Azure Function : How to see if a record exists in Table Storage
注意:这是针对 Azure 函数的。微软文档中的 normal C# links 不适用。它用于 Azure 函数。
场景:
我只需要每个人有 1 个条目,以及此人登录的最后日期。此 属性 每次都会更新。
Azure Functions 仍然无法执行 upsert
因此我不得不将我的代码拆分为
正在创建新记录。
我不能简单地运行创建和更新的更新方法:
error CS1061: 'CloudTable' does not contain a definition for 'Add' and
no extension method 'Add' accepting a first argument of type
'CloudTable' could be found (are you missing a using directive or an
assembly reference?)
所以此时,我需要检查一个项目是否已经存在,然后我需要调用创建或更新函数。
如何使用 Azure 函数查询 Table 存储以查看项目是否存在?
要检查实体是否存在,您可以接受它作为输入参数并测试 null
:
[FunctionName("UpsertEntity")]
public static HttpResponseMessage Run(
[HttpTrigger(AuthorizationLevel.Function, "get", Route="test/{id}")]
HttpRequestMessage req,
string id,
[Table("Test", "default", "{id}")] MyEntity entity)
{
return req.CreateResponse(HttpStatusCode.OK, entity != null ? "exists" : "not found");
}
您可以使用输入和输出参数的组合进行更新:
[FunctionName("UpsertEntity")]
public static HttpResponseMessage Run(
[HttpTrigger(AuthorizationLevel.Function, "get", Route="test/{id}")]
HttpRequestMessage req,
string id,
[Table("Test", "default", "{id}")] MyEntity entity,
[Table("Test", "default", "{id}")] out MyEntity outEntity)
{
outEntity = entity ?? new MyEntity { PartitionKey = "default", RowKey = id };
outEntity.Name = Guid.NewGuid().ToString();
return req.CreateResponse(HttpStatusCode.OK, id);
}
注意:这是针对 Azure 函数的。微软文档中的 normal C# links 不适用。它用于 Azure 函数。
场景:
我只需要每个人有 1 个条目,以及此人登录的最后日期。此 属性 每次都会更新。
Azure Functions 仍然无法执行 upsert
因此我不得不将我的代码拆分为
正在创建新记录。
我不能简单地运行创建和更新的更新方法:
error CS1061: 'CloudTable' does not contain a definition for 'Add' and no extension method 'Add' accepting a first argument of type 'CloudTable' could be found (are you missing a using directive or an assembly reference?)
所以此时,我需要检查一个项目是否已经存在,然后我需要调用创建或更新函数。
如何使用 Azure 函数查询 Table 存储以查看项目是否存在?
要检查实体是否存在,您可以接受它作为输入参数并测试 null
:
[FunctionName("UpsertEntity")]
public static HttpResponseMessage Run(
[HttpTrigger(AuthorizationLevel.Function, "get", Route="test/{id}")]
HttpRequestMessage req,
string id,
[Table("Test", "default", "{id}")] MyEntity entity)
{
return req.CreateResponse(HttpStatusCode.OK, entity != null ? "exists" : "not found");
}
您可以使用输入和输出参数的组合进行更新:
[FunctionName("UpsertEntity")]
public static HttpResponseMessage Run(
[HttpTrigger(AuthorizationLevel.Function, "get", Route="test/{id}")]
HttpRequestMessage req,
string id,
[Table("Test", "default", "{id}")] MyEntity entity,
[Table("Test", "default", "{id}")] out MyEntity outEntity)
{
outEntity = entity ?? new MyEntity { PartitionKey = "default", RowKey = id };
outEntity.Name = Guid.NewGuid().ToString();
return req.CreateResponse(HttpStatusCode.OK, id);
}