在不定义模型类的情况下查询ravendb

本文关键字:情况下 查询 ravendb 定义 模型 | 更新日期: 2023-09-27 18:25:27

有没有一种方法可以在不定义模型类的情况下查询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 server一样进行查询吗?而不需要定义我甚至不知道的表结构?在上面的例子中,我需要声明一个类Site才能运行查询:var sites = session.Query<Site>()。我想像session.Query<"Site">() 一样运行这个

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

在不定义模型类的情况下查询ravendb

我相信,只要您知道要获取的文档集合的名称,就可以使用数据库命令(Query)来完成您正在尝试的操作。请参阅此处了解更多信息。

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