0

使用Azure.Data.Tables12.3.0 并尝试保存以下示例模型时出现错误:

System.NotSupportedException:Azure.Data.Tables.TableRestClient.CreateInsertEntityRequest (String表,可空超时,可空 responsePreference,IDictionary tableEntityProperties,QueryOptions queryOptions)

PersistedPerson.cs

class PersistedPerson
{
  string Name { get; init; }
  Dictionary<Guid, Guid> SomeDictionary { get; init; } = new();
}

为了保存实体,我正在创建它并将其传递到我的存储库中,在该存储库中创建 TableClient 并保存实体,如下所示:

var tableClient = new TableClient(tableStorageConfiguration.ConnectionString, tableName);
await tableClient.AddEntityAsync(persistedModel, cancellationToken);

Microsoft.Azure.Cosmos与 Cosmos DB(模拟器和服务)一起使用时,我可以毫无问题地保存此对象。我尝试过使用 Azure Storage Emulator 5.1.0 和 Azure Table Storage(在线)。字典中使用什么数据类型似乎也无关紧要。我犯了同样的错误。

有什么建议么?我找不到很多关于这个库有什么序列化支持的信息。看起来它正在使用某种 JSON 编写器进行序列化,并且我已验证System.Text.Json 支持

[更新] 交换库和底层实现确实解决了这个问题。在 CosmosDb (SQL) 中运行良好,但在 CosmosDb 表中运行良好。

4

0 回答 0