2

モデル クラスを定義せずに 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">()

これは可能ですか?この機能を設定するにはどうすればよいですか?

4

1 に答える 1

3

Query取得しようとしているドキュメント コレクションの名前がわかっている限り、データベース コマンド ( ) を使用して目的を達成できると思います。詳しくはこちらをご覧ください。

QueryResult sites = store.DatabaseCommands.Query(
    "Sites/ByTitle",
    new IndexQuery
        {
            Query = "Title:CN*"
        }, null);
于 2013-07-30T13:50:29.870 に答える