我实现了一个简单的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);
});
}
}
“GetSagaData”是一种扩展方法,它是“NserviceBus”命名空间的一部分。包括以下声明
using NServiceBus;
这对我有用。我现在没有收到这个错误
使用nuget
包NServiceBus.Persistence.Sql