Ravenを使用してサガを永続化しています。実装したいのですがIFindSagas
、2つのプロパティに基づいてサガを見つける必要があるため、機能しません。このインターフェースでは、単一のプロパティで単一のサガを検索することしかできません。SiteId
EmailAddress
ConfigureMapping
ISagaPersister
私はこのようなサガファインダーを実装しました
public class MySagaFinder : IFindSagas<MySagaData>.Using<ISomeMessage>
{
public ISagaPersister Persister { get; set; }
public MySagaData FindBy(ISomeMessage message)
{
var lookup = string.Format("{0}__{1}", message.SiteId, message.EmailAddress);
return Persister.Get<MySagaData>("SagaLookup", lookup);
}
}
したがって、基本的には、との連結であるMySagaData
calledにプロパティを追加しました。これで調べられます。これはハックのように感じます。sagaパーシスターを使用して、複数のプロパティでsagaを取得したり、1つのプロパティに基づいてsagaのリストを取得したりして、他のプロパティでフィルタリングしたりする方法はありますか?SagaLookup
SiteId
EmailAddress