【发布时间】:2017-07-10 07:40:58
【问题描述】:
我实现了一个简单的IFindSaga,我参考并遵循了 SQL Persistence Saga Finding Logic 的特定软件文档中提供的相同步骤。我在session.GetSagaData<SagaData> 收到一个错误,指出:“SynchronizedStorageSession 不包含GetSagaData 的定义并且没有扩展方法GetSagaData 可以找到接受SynchronizedStorageSession 类型的第一个参数(您是否缺少使用指令或程序集引用)。”请帮我解决这个问题。
这是我实现IFindSaga的代码
public class TrackerFind : IFindSagas<SagaData>.Using<ITrackerData>
{
public Task<SagaData> FindBy(ITrackerData message, SynchronizedStorageSession session, ReadOnlyContextBag context)
{
return session.GetSagaData<SagaData>(
context: context,
whereClause: "JSON_VALUE(Data,'$.PaymentTransactionId') = @propertyValue",
appendParameters: (builder, append) =>
{
var parameter = builder();
parameter.ParameterName = "propertyValue";
parameter.Value = message.TrackerID;
append(parameter);
});
}
}
【问题讨论】:
-
docs.particular.net/samples/saga/sql-sagafinder 你有所有需要的参考资料吗?
-
请注意,NServiceBus 文档中的代码 sn-ps 上有一个“复制使用”选项,可以帮助解决此类问题。此外,自定义 saga finder 是 NServiceBus 的一个非常偏僻的功能,所以我们(我为 Particular Software 工作)很想听听您在这里使用自定义 saga finder 的具体用例,而不是让PaymentTransactionId 作为您的正常关联属性。
-
我添加了特定软件中提到的引用和命名空间,但仍然存在相同的错误。 @SeanFarmar
-
@DavidBoike 我只是想了解
IFindSagas。如果您可以提供简单示例源代码的链接以及每个步骤的说明,将会很有帮助(因为我只有 C# 的基本知识)。
标签: c# .net nservicebus saga