NServiceBus AzureSagaPersistence 架构问题

NServiceBus AzureSagaPersistence schema issue

我已经通过添加一个 DateTime 属性 更新了我的 saga 数据 class 并且一切都变得糟糕了。模式没有更新,我开始在每条 saga 消息上收到异常,但我没有重要数据,所以我删除了 table.

从那时起,saga 数据 table 就是这样创建的:

架构中没有 Saga 数据 class 中的字段。

这是我的 saga 数据 class:

public class ModuleAliveSagaData : ContainSagaData
{
    [Unique]
    public string ModuleId { get; set; }
    public string Endpoint { get; set; }
    public string Module { get; set; }
    public DateTime LastCheck { get; set; }
    public DateTime LastWarning { get; set; }
    public bool Warning { get; set; }
    public bool Error { get; set; }
}

这是怎么回事?在我删除 saga 数据之前 table,它完全没问题。

更新:我从我的数据 class 中删除了第二个 DateTime 字段,再次删除了 table 并且它开始工作了。为什么会这样?

你遇到了什么异常?

PS: Azure存储没有schema,所以只要你不往datetime字段中放入任何数据,该字段就不存在。

我假设发生异常是因为您在 table 中已有记录但其中没有日期时间 属性,而您的日期时间 属性 需要数据。你能试试 DateTime 吗? 属性类型?

PS: azure saga persister 也不支持 [Unique] 属性,如果您需要属性的唯一性,最好采用不同的 persister