2012-02-17 79 views
1

這可能是一個愚蠢的問題,但因爲我很新的Raven DB,我敢問。Raven DB中的自引用查詢?

想象我有以下幾點:

  • 烏鴉DB填充了一系列的「EVENTDATA」對象的實例。
  • 每個EventData實例都有一個MessageId和一個時間戳。
  • MessageId將在列表中出現兩次,一次用於發送郵件時,另一次用於收到郵件。

因此,對於這種情況下,我想辦一個自我指涉的表連接和搜索基礎上的MessageId,開始/結束EVENTDATA對,我可以再使用的每一個時間戳字段來計算兩次事件之間的時間差異。

我認爲下面的代碼會工作,但我得到一個「方法不支持:SelectMany」錯誤。

var mexEvent = from startEventData in session.Query<EventData>() 
        from endEventData in session.Query<EventData>() 
        where startEventData.MessageId == endEventData.MessageId 
        select new { MessageId = startEventData.MessageId, Latency = (endEventData.EventTime - startEventData.EventTime).TotalMilliseconds }; 

    foreach (var eventDataItem in mexEvent) 
     Console.WriteLine("MessageId: " + eventDataItem.MessageId + ", Latency: " + eventDataItem.Latency); 

我需要這個內部演示,所以不需要它花哨,只是功能。有人可以幫助我瞭解如何將兩個文檔加入同一個數據庫嗎?

謝謝!

回答

1

院長, 你不能做那些之類的東西在查詢,但你可以做到這一點的地圖/很容易

+0

將ü請詳細降低操作? – Mohsin 2013-11-25 07:38:17