Ben RavenDb için mutlak bir başlangıç yapıyorum ama SQL kullanarak EF ve depo modelinde çok deneyimliyim. Sonunda denemek için etrafta dolaşmak, böylece başka bir uygulama üzerinde yaşlanan SQLLite EF uygulamasını değiştirme niyetiyle RavenDB.Embedded kullanarak basit bir konsol uygulaması oluşturdum. Her neyse, mağazaya 1000'den fazla kayıt yazmayı ve bir akışla okumayı deniyorum. Aşağıdaki örnek kod: Ben bu oldukça ilkel olduğunu farkRavenDb Stream hiç sonuç döndürüyor
var store = new EmbeddableDocumentStore
{
DataDirectory = "data"
};
store.Initialize();
using (IDocumentSession session = store.OpenSession())
{
for (var t = 1; t < 1000; t++)
{
var subtest = new Test
{
Id = new Guid(),
SubTest = new SubTest
{
Name = "NewTest",
Id = new Guid()
}
};
session.Store(subtest);
}
session.SaveChanges();
}
store
.DatabaseCommands
.PutIndex("SubTest/All",
new IndexDefinitionBuilder<SubTest>()
{
Map = tests => tests
.Select(test => new
{
SubTest = test.SubTest,
Id = test.Id
})
});
using (IDocumentSession session = store.OpenSession())
{
var query = session.Query<Test>("SubTest/All");
var listt = query.ToList();
using (var enumerator = session.Advanced.Stream(query))
{
while (enumerator.MoveNext())
{
var t = enumerator.Current.Document;
System.Console.WriteLine(t.Id);
}
};
}
System.Console.ReadLine();
ve ben çok kodumu düzeltmek için birini arıyorum değil. Sadece birisinin indeks olayının bir akımla nasıl çalışacağını ve belki sayımın neden sonuçlarının olmadığını açıklayabileceğini anlamamı bekliyorum. Eğer .Query yerine .Load kullanırsam sonuçlar elde ederim (128'i), bu yüzden geri kalanının işe yarayacağına eminim.
Yukarıdaki PutIndex olayını denedim ancak benzer şekilde kafa karıştırıcı sonuçlar veren AbstractIndexCreationTask'ı da denedim. Gerçekten bu online garip bir şekilde çok fazla bilgi bulamıyorum, bu gerçekten nadir mi?
ilginç bir şey ilk kez onun tarafından işletilen akışı sonuç verir olmasıdır:
Ve My Index: Her durumda, bu çalışır. Okuduğum bilgilere dayanarak, henüz eklediğim veriler henüz dizine eklenmiş değil ve akış endeksleme için beklemiyor. – Brandon
PutIndex ve bir AbstractIndexCreationTask oluşturma aynı şeyi yapın: bir dizin oluşturun. Sonunu öneririm. –
Orijinal örnek, henüz dizine alınmadığı için öğe döndürmez. Dizinin eski olmaması (yani, indekslemeyi bitirmesi) için beklerseniz, sonuç elde edersiniz. (temelde RavenDB indekslerinin tutarlılığıyla karşılaşırsınız). – Michael