有没有办法在不定义模型类的情况下查询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">()
这甚至可能吗?如何设置此功能?
答案 0 :(得分:3)
我相信您可以使用数据库命令(Query
)来完成您正在尝试的内容,只要您知道要尝试获取的文档集的名称即可。有关详细信息,请参阅here。
QueryResult sites = store.DatabaseCommands.Query(
"Sites/ByTitle",
new IndexQuery
{
Query = "Title:CN*"
}, null);