我正在使用 Raven 来持久IFindSagas
化 saga 并且我想实现,我需要根据 2 个属性找到 saga,SiteId
因此EmailAddress
无法ConfigureMapping
正常工作。该ISagaPersister
界面仅允许您通过单个属性查找单个 saga。
我已经实现了这样的传奇查找器
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);
}
}
所以基本上我在 call 上添加了一个属性,MySagaData
它SagaLookup
是SiteId
and的串联EmailAddress
。然后我可以通过这个查找它。这感觉就像一个黑客。有什么方法可以使用 saga 持久化器,我可以通过多个属性获取一个 saga,或者根据一个属性获取一个 saga 列表,然后我可以通过另一个属性进行过滤?