2
我有一個簡單的類層次結構看起來像這樣:使用TransformResults從RavenDB中選擇分層數據?
public class Top
{
public string Id { get; set; }
public string Description { get; set; }
public List<Middle> Middles { get; set; }
}
public class Middle
{
public string Id { get; set; }
public string Description { get; set; }
public List<Bottom> Bottoms { get; set; }
}
public class Bottom
{
public string Id { get; set; }
public string Description { get; set; }
}
整個事情被保存爲類型的實體「頂」。文檔旨在保留和反映關係/層次結構,但只有一半,但我會僅關注給定關係的「Id」和「Description」。所以,我要運行的查詢類型是
- 選擇一切之上,
- 選擇所有中東,
- 選擇中,其中Top.Id = someValue中
- 選擇底,其中Top.Id = someValue中和Middle.Id = someValue中
我想結果進行改造,並返回到我這個樣子:
public class Result
{
public int Id { get; set; }
public string Description { get; set; }
}
如何才能實現TransformResults(我認爲這是可以使用的功能)?我已經閱讀了很多例子,但突然間我看到了參數/值,這些參數/值沒有在任何地方聲明,因此我不明白髮生了什麼。
好的,在這種情況下我應該怎麼做?我把它分開,把Top,Middle和Bottom作爲單獨的文件對待?爲什麼我的方法「奇怪」?它是否過於關係?我只是想了解我做錯了什麼,做什麼是正確的做法。感謝幫助! – user981375 2012-08-06 13:27:30
我想我可能會混淆這些問題。閱讀後http://stackoverflow.com/questions/7829379/ravendb-retrieving-part-of-document?rq=1現場投影產生我想要的。如果我指定我的quey像'var top = session.Query .First(t => t.Id.Equals(1))。Middles.Select(m => new {m.Id,m.Description})。ToList ()'然後我得到所有Middles給定的Top.Id,這正是我想要的。以同樣的方式,我可以一直導航。這工作得很好,但這是做到這一點的方式? –
user981375
2012-08-06 17:11:36