【发布时间】:2021-10-01 07:59:19
【问题描述】:
我目前正在将使用 ASP.NET WebApi 为 .NET Fx 4.8 编写的项目迁移到 .NET 5.0。该项目大量使用包 WindowsAzure.Storage 来访问 Azure 存储帐户上的 BLOB、表和队列。这个包已经被弃用了一段时间,说明它已经被分成了几个包。
对于队列和 Blob,我应该迁移到什么位置非常清楚。但是,关于 Azure Tables 似乎有很多困惑。
- 首先在 NuGet 包WindowsAzure.Storage 中声明用于表的包是Microsoft.Azure.CosmosDB.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 还发表了一篇博文,说这个包是全新的,所以我想这就是我要找的吗?
无论如何:我发现 Azure.Data.Tables 的 API 与 WindowsAzure.Storage 非常相似,我只需要在这里和那里进行一些调整。 p>
但我现在完全缺少的是 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);
【问题讨论】:
-
请编辑您的问题并包含您当前拥有的想要迁移的代码。
-
请注意 Cosmos.Table 已于 2020 年更新,最新版本为 1.0.8。这个 1.0.8 有你的课程。不过,预览版已于 2019 年更新。 nuget.org/packages/Microsoft.Azure.Cosmos.Table/1.0.8
-
你有没有深究过这个?
-
我最终使用了 [Azure.Data.Tables] (nuget.org/packages/Azure.Data.Tables)