编程语言
首页 > 编程语言> > C#-NServicebus 6,Azure存储持久性,Sagas和复杂类型(集合)

C#-NServicebus 6,Azure存储持久性,Sagas和复杂类型(集合)

作者:互联网

我已经看到与此问题类似的问题,这些问题正在使用SQL Server和Nhibernate持久性.但是Azure存储如何呢?

我有一个可以容纳Saga数据的类.该属性包含一个集合:

public class ResetPolicyData : ContainSagaData
{
    public int NumberOfEmailsInGroup { get; set; }
    public Guid EmailGroupId { get; set; }

    public List<PasswordResetInformation> PasswordResetInformation { get; set; }
}

PasswordResetInformation包含几个简单的字符串属性,仅此而已.

当传奇尝试将数据持久保存到Azure存储时,出现以下错误:

The property type ‘List 1’ is not supported in windows azure table storage at NServiceBus.Persistence.AzureStorage.AzureSagaPersister.ToDictionaryTableEntity(Object entity, DictionaryTableEntity toPersist, IEnumerable`1 properties) in C:\Build\src\NServiceBus.Persistence.AzureStorage\SagaPersisters\AzureSagaPersister.cs:line

在我的EndpointConfig中,我有以下内容,所以我想我很期待NServiceBus将PasswordResetInformation神奇地序列化为JSON并存储它:

endpointConfiguration.UseSerialization<JsonSerializer>();

所以我的问题是:有没有办法将Saga数据中的列表或其他集合持久保存到AzureStorage?

解决方法:

Azure存储只有supports primitive types.因此,任何其他内容都应该序列化(JSON,就像您建议的那样可行)并存储为简单类型.这应该被记录在案,这里是一个link以跟踪该文件的进度.

标签:azure,azure-storage,azure-table-storage,c,nservicebus
来源: https://codeday.me/bug/20191026/1940046.html