我目前正在将一个使用ASP.NET WebApi编写的.NET Fx 4.8项目迁移到.NET 5.0。该项目大量使用WindowsAzure.Storage包以访问Azure存储帐户上的BLOB、表和队列。该包已经被弃用了一段时间,说明已将其拆分为几个包。
对于队列和Blobs来说,我应该迁移到什么已经很明显了。但是有关Azure Tables,似乎存在很多混淆。
但我现在完全缺少QueryComparisons和TableQuery类。它们消失了吗?有替代品吗?
对于队列和Blobs来说,我应该迁移到什么已经很明显了。但是有关Azure Tables,似乎存在很多混淆。
- 首先,在NuGet包WindowsAzure.Storage中指出,应使用Microsoft.Azure.CosmosDB.Table包来处理table。这有点令人困惑,因为我一直认为"CosmosDB"与"Azure Tables"完全不同,但也许我错了。
- Microsoft.Azure.CosmosDB.Table的描述说明,该包处于维护模式并将被弃用。应改用Microsoft.Azure.Cosmos.Table代替。
- Microsoft.Azure.Cosmos.Table已经很久没有更新了,2.0.0预览版已经超过两年了。它的GitHub存储库中还有一个问题,专门询问这个项目是否已死 - 没有答案。
- 在搜索后,我发现Azure.Data.Tables包最接近我可能正在寻找的内容。它被更新了,看起来仍在维护,与其他存储包版本号相符。只是命名有点不同。今年6月,MS还发布了一篇博客文章,介绍了这个全新的包,所以我想这就是我要找的东西?
但我现在完全缺少QueryComparisons和TableQuery类。它们消失了吗?有替代品吗?
需要迁移的代码示例:
var part1 =
TableQuery.GenerateFilterConditionForGuid(
nameof(SomeEntity.Id),
QueryComparisons.Equal,
idValue));
var part2 =
TableQuery.GenerateFilterConditionForGuid(
nameof(SomeEntity.Category)
QueryComparisons.Equal,
category));
return TableQuery.CombineFilters(part1, TableOperators.And, part2);