2017-07-10 73 views
0

我有一个简单的IFindSaga实现,我提到并遵循SQL Persistence Saga Finding Logic的特定软件文档中提供的相同步骤。我在session.GetSagaData<SagaData>处得到一个错误,指出:“SynchronizedStorageSession不包含GetSagaData的定义,也没有包含接受SynchronizedStorageSession类型的第一个参数的扩展方法GetSagaData(您是否缺少using指令或程序集引用)。”请帮我解决这个问题。实现一个简单的IFindSaga

这是我的代码,我已经实现了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); 
        }); 
      } 
     } 
+0

你跟随这? https://github.com/Particular/docs.particular.net/blob/master/samples/saga/sql-sagafinder/SqlPersistence_2/EndpointSqlServer/OrderSagaFinder.cs –

+0

https://docs.particular.net/samples/saga/ sql-sagafinder/ 你有所有需要的参考吗? –

+0

请注意NServiceBus文档中的代码片段上有一个“Copy usings”选项,可以帮助解决这样的问题。此外,自定义的传奇发现者是NServiceBus的一个非常偏远的功能,所以我们(我为特定的软件工作)会非常感兴趣的听到你的具体使用情况在这里使用自定义传奇发现者,而不是PaymentTransactionId是您的正常相关属性。 –

回答

-1

使用的NuGet

包NServiceBus.Persistence.Sql

+0

该软件包专门解决了什么问题? – rene