2012-03-14 107 views
1

剛剛掌握了RavenDB - 這真棒 - 但我有點卡住一個查詢。我運行一個foreach並使用Store()方法來保存一些數據,一旦完成使用SaveChanges()方法。一旦我存儲了這些信息,我需要引用這些信息來存儲一些額外的信息(如果你稍微有些困惑,代碼將會使它變得清晰!),但是當我引用信息時沒有信息被發現。RavenDB查詢商店

所以,首先我想補充一些數據:

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

不要忘記調用Session.SaveChanges()將存儲提交到數據庫。 – 2012-03-14 14:49:19

+0

是的,抱歉,我沒有把它放在上面的例子中 - 在foreach循環之後,我做了Session.SaveChanges(); – Matt 2012-03-14 14:53:23

回答

1

它不建議你這麼做。回到安全的默認概念RavenDB。

1

如果您剛剛存儲了這些值,爲什麼需要將它們保存到數據庫並從數據庫重新加載它們?只要使用內存集合,那就是了。