2011-02-09 8 views
2

私がやっているプロジェクトでRavenDBを使いたいのですが、ネストされたオブジェクトを照会する方法を理解する必要があります...説明しましょう 私はこのようなクラスを持っています:問題RavenDBでネストされたリストを照会しています

そして、Orderクラス
public class Customer 
{ 
public string Id { get; set; } 
public string Name { get; set; } 
public IList<Orders> { get; set; } 
} 

:私は偽のデータの束を作成し、レイヴンに追加

public class Order 
{ 
public int OrderNumber { get; set; } 
public decimal OrderAmount { get; set; } 
public bool CustomerBilled { get; set; } 
} 

- 一部のお客様にのみtrueに設定CustomerBilledで注文を持って、CustomerBilledといくつかは、falseに設定され、 CustomerBilledでは真と偽の組み合わせがあります。

私が助けが必要なのは、CustomerBilledの1つ以上のOrdersがfalseに設定されている顧客のリストを抽出する方法です。

どのようにしてクエリを作成すればよいですか?私は一人を働かせるようには見えないし、どうしたらいいかわからない。

答えて

4

RavenDBでdynamic queriesはこれを処理することができ、私は次はあなたがやりたいことだと思います(すみません、私が確認するために、今のコードをコンパイルすることはできません)

// List of objects - linq 
from doc in Customers 
where doc.Orders.Any(order => order.CustomeBilled == false) 
select doc; 

編集:新しいリンク、スクロール上"フィルタリングのオプション"のセクションの半分まで

+0

これはうまくいきました。このようにいくつか変更しなければなりませんでした。var item = from doc in session.Query () doc.Orders。 Any(y => y.CustomerBilled == false) select doc; – thorkia

+0

ああ、実際のLINQクエリではなく、プレーンテキストインデックスを作成しました。うまく動いてうれしい –

+0

"動的クエリ"リンクがRavenDBサイトの "ページが見つかりません"というメッセージにつながるようになりました。 – CoderDennis

関連する問題