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