多個屬性我使用烏鴉堅持傳奇,我想實現IFindSagas
,我需要找到基於兩個屬性的傳奇,SiteId
& EmailAddress
所以ConfigureMapping
將無法正常工作。 ISagaPersister
界面只允許您查看單個屬性的單個傳奇。IFindSagas與掠奪傳奇的持久性和NServiceBus
我實現了一個傳奇取景器這樣
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);
}
}
所以基本上我也添加了SagaLookup
上MySagaData
一個屬性,它是SiteId
和EmailAddress
的串聯。我可以通過這個來查找它。這感覺像一個黑客。有沒有什麼方法可以使用傳奇持久物,我可以通過多個屬性獲得傳奇,或者根據一個屬性獲取傳奇列表,然後我可以通過其他屬性進行過濾?
通常這是一個表示域概念丟失的標誌。 siteId和電子郵件標識了您的域中的哪些內容? –
用戶網站的邀請,有人建議我可以爲每個人生成一個唯一的ID,但我並不真的需要其他任何ID,並試圖避免更多的數據 –
我意識到我是愚蠢的關於這一點,我正在生成一個隨機字符串的驗證碼並通過電子郵件發送出去。我現在要使用guid,並將其用作傳奇標識符並簡化整個事物,謝謝! –