查询ravendb而不定义模型类?

时间:2013-07-30 13:43:48

标签: c# ravendb

有没有办法在不定义模型类的情况下查询ravendb?通常我们定义模型并发出如下查询:

public class Site
{
   public string Title { get; set; }
   public string URL { get; set; }
   public string Notes { get; set; }
}

var documentStore = new Raven.Client.Document.DocumentStore{Url = "http://localhost:8080" };
 documentStore.Initialize();
 using (var session = documentStore.OpenSession())
 {
    var sites = session.Query<Site>()
                   .Where(x => x.Title.StartsWith("CN")).ToList();
    for (int i = 0; i < sites.Count; i++)   {
         MessageBox.Show(sites[i].Title + " - " + sites[i].URL);
    }  
 }

但我可以像SQL服务器一样查询 - 没有定义我可能不知道的表结构吗?在上面的示例中,我需要声明一个类Site才能运行查询:var sites = session.Query<Site>()。我想像session.Query<"Site">()

那样运行它

这甚至可能吗?如何设置此功能?

1 个答案:

答案 0 :(得分:3)

我相信您可以使用数据库命令(Query)来完成您正在尝试的内容,只要您知道要尝试获取的文档集的名称即可。有关详细信息,请参阅here

QueryResult sites = store.DatabaseCommands.Query(
    "Sites/ByTitle",
    new IndexQuery
        {
            Query = "Title:CN*"
        }, null);