2012-03-14 5 views
1

ちょうどRavenDBのグリップになっています。これはすばらしいですが、私は少し質問に悩まされています。 foreachを実行し、Store()メソッドを使用してデータを保存し、SaveChanges()メソッドを使用して完了します。RavenDBクエリストア

この情報を保存したら、この情報を参考にして追加情報を保存する必要があります(この時点で少し混乱しても心配しないでください)。情報が見つかりません。なぜならセッション内で実行することができますクエリの数、Iは、メモリ内のデータセット全体や店舗を検索すると制限により、今

foreach (var development in developments) 
      { 
       Console.WriteLine(" - Working on Developmnent ID: " + development.devID); 
       Session.Store(new Domain.Development 
            { 
             Id = "D" + Convert.ToString(development.devID), 
             Name = development.devName, 
             Street = development.devStreet, 
             Town = development.devTown, 
             County = development.devCounty, 
             Postcode = development.devPostcode, 
             Country = development.devCounty, 
             Description = "", 
             Longitude = GeoData.Longitude(development.devPostcode), 
             Latitude = GeoData.Latitude(development.devPostcode) 
            }); 

      } 

だから、すべての最初の私はいくつかのデータを追加します。

var developmentList = from d in Session.Query<Domain.Development>() 
         select d; 

この最後にブレークポイントを追加すると、見つかるデータがありません。このデータを取得するために別のセッションを作成する必要がありますか?

私もここで

var developmentList = Session.Query<Domain.Development>(); 

を試してみました、私はあまりにもセッションを作成するコードは次のとおりです。

internal static DocumentStore Store; 
internal static IDocumentSession Session { get; set; } 

internal <<Constructor>> ... 
Store = new DocumentStore { ConnectionStringName = "RavenDB" }; 
Store.Initialize(); 

IndexCreation.CreateIndexes(Assembly.GetCallingAssembly(), Store); 

Session = Store.OpenSession(); 
+0

Store.SaveChanges()を呼び出してストアをdbにコミットすることを忘れないでください。 –

+0

申し訳ありません、私は上記の例に入れませんでした - foreachループの後で私はSession.SaveChanges()を行います。 – Matt

答えて

1

あなたがこれを行うお勧めしません。 RavenDBのデフォルトのコンセプトによって安全に戻ります。

1

これらの値を保存したばかりの場合、なぜそれらをデータベースに保存し、データベースから再ロードする必要がありますか?メモリ内のコレクションを使用するだけです。