2012-02-17 52 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