2012-02-17 12 views
1

これはばかげた質問かもしれませんが、私はRaven DBの新機能として敢えて尋ねるつもりです。 「EventDataの」オブジェクトのインスタンスの数で埋めRaven DBの自己参照クエリ?

  • レイヴンDB:

    は、私は次のようしている想像してみてください。

  • 各EventDataインスタンスには、MessageIdとタイムスタンプがあります。
  • MessageIdは、メッセージが送信されたときと受信されたときの2回、リストに2回表示されます。

このシナリオでは、テーブルの自己参照結合を行い、MessageIdに基づいてbegin/end EventDataペアを検索したいと思います。次に、それぞれのタイムスタンプフィールドを使用して2つのイベントの時間差。

私は次のコードがうまくいくと思っていましたが、「メソッドがサポートされていません: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); 

これは社内のデモ用に必要なので、飾り気のない、機能的である必要はありません。誰かが同じデータベース内の2つの文書を結合する方法を理解するのを手伝ってもらえますか?

ありがとうございます!

答えて

1

ディーン、 クエリで物事のこれらの並べ替えを行うが、あなたはマップでこれを行うことができます/

+0

非常に簡単に操作を減らすことはできませんuは手の込んだしてくださいでしょうか? – Mohsin