問題タブ [ravendb]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
include - ドキュメントに含めるとしてRavenDbクエリインデックスの結果を実行する方法
次のクエリは両方とも期待どおりに機能します。「Include()」メソッドを使用して、データベースから1回のプルで両方を返す方法を理解するのに問題があります。
「Include()」メソッドを追加するとすぐに、Query()とAdvance()の両方が関連しなくなります。これを行う方法はありますか?
asp.net-mvc-3 - ASP.NET MVC 3、RavenDB、および Autofac Issue Plus 2 その他の Autofac に関する質問
注: ここには 3 つの質問がありますが、これらはすべて同じコードに多少関連しているため、個別の質問は作成しませんでした。
アプリケーションのライフ サイクルごとに 1 回、Application_Start に RavenDB への接続を登録する次のコードがあります。
これで問題なく動作し、アプリケーションのライフ サイクルごとに 1 回だけ作成する必要があります。DocumentSession を Autofac に追加したかったので、これを Application_Start に追加しようとしました。
私の UserRepository には、次のコンストラクターがあります。
これを実行しようとすると、次のランタイム エラーが発生します。
コンストラクター 'Void .ctor(Raven.Client.Document.DocumentStore, Raven.Client.Document.DocumentSession)' のパラメーター 'Raven.Client.Document.DocumentSession Session' を解決できません
このエラーは、Autofac が DocumentSession を持っているとは思わないように聞こえますが、それが store.OpenSession() が返すものなので、そうすべきです。このエラーの原因を知っている人はいますか? セッション変数を正しく設定していませんか (問題なく動作するストア変数と同じです)。
上記の問題に関連する場合と関連しない場合がある別のことは、アプリケーションのライフサイクルごとではなく、リクエストごとにオブジェクトのインスタンスを Autofac に追加する方法です。RavenDB DocumentStore オブジェクトはライフ アプリケーション サイクルで 1 回だけ作成する必要がありますが、DocumentSession は要求ごとに 1 回作成する必要があります (アプリケーション レベルごとに作成すると、上記のエラーが発生する可能性があります)。
Autofac に関する最後の質問 (上記のコードに少し関係があります) は、オブジェクトの解放に関するものです。このチュートリアルを見ると:
最後のコード:
このコードのポイントは、セッションのリークを防ぐことです。これは、Autofac についても心配する必要があることです。もしそうなら、Autofac でこれを行うにはどうすればよいですか?
c# - StructureMap 構文に相当する Ninject を取得するのに助けが必要
Ravendb に IoC (Ninject) を実装しようとしていますが、ちょっとした問題が発生しました。http://www.dotnetguy.co.uk/post/2010/06/12/raven-db-ndash-part-1-ndash-documentsession-per-request-with-structuremapのコードを使用して支援しています。
次の構造マップ構文を変換する方法がわかりません。
私の試みでは、新しいコンストラクターのため、すべてのリクエストで _ravenSessionFactory が null です。
時間を割いて説明を手伝ってくれてありがとう。
ravendb - RavenDB : シンプルなクエリ().ToList() は 0 件の結果を返します
RavenDB (@localhost:3000 を実行するサーバー モード) と ASP.NET MVC3 を使用しています。
ビルド 289 から動作を停止したこのコード セグメントがあります。それが 322 への更新なのか、それとも私が行ったものなのかはわかりませんが、以前は数回動作していました。
しばらく前に試したときにすべての投稿を削除していました (サンプル データには約 50 件の奇妙な投稿しかなく、さらに 500 件の投稿しかありません)。私が見ることができる唯一の変更は、実行時にこれら 2 つが発生していることです。
そして、このログは、上記のコード セグメント (Session.Delete) が実際に実行されているときに、ビジュアル スタジオの出力ウィンドウに表示されます。
また、Raven のログ (テキスト ファイル) には、不都合なことは何もありません。
このクエリは問題なく実行されます:
正しい Post インスタンスをフェッチします。
単純な Session.Query().ToList() が常に 0 の結果を返すのはなぜですか? また、Session.Query().Count() は常に 0 を返します。Raven DB の SilverLight-UI (SL-UI) が DB に 50 個の奇数の投稿があることを明確に示していることを考えると、この動作の原因は何ですか?
「Raven-Entity-Name」は正しく入力されています。
ravendb - Raven DB カウント クエリ
特定のコレクション内のドキュメントの数を取得する必要があります:
コレクションに属する実際のドキュメントとペアになっているコレクションのカウントと名前を格納する既存のインデックス Raven/DocumentCollections があります。可能であれば、このインデックスからカウントを取得したいと思います。
Raven/DocumentCollections インデックスの Map-Reduce は次のとおりです。
ちなみに、私のDBには明らかに500個の奇妙なドキュメントがあり、そのうちの少なくとも50個のメタデータに「Raven-Entity-Name」が「 Posts var Count = DocumentSession.Query<Post>().Count();
」として含まれているにもかかわらず、結果として常に0が返されます。この Count クエリが答えとして 0 を返し続ける理由がまったくわかりません - Raven ログは、Count が完了するとこれを示します
ravendb - RavenDB による ID のクエリ
Slugというフィールドを持つPostというモデルがあります。このフィールドを属性 [ID] でマークし、RavenDB の FindIdentityProperty 規則を変更して、[ID] でマークされたプロパティをドキュメントの ID と見なすようにしました。
今、文字 G で始まるスラッグを持つすべての投稿を取得したいのですが、次のようなインデックスを作成する必要がありますか?
またはこのように
または、ID を照会しているため、RavenDB が内部的に持つべきインデックスを使用しますか。RavenDB には ID プロパティがどこかにインデックス化されているため、aSession.Load<Post>("SomeID")
が可能であることを理解しています。
最初のオプションは、C# のコードで AbstractIndexCreationTask として定義できます。これは、C# が Slug が Post のフィールドであることを理解しているためですが、次のように RavenDB に「文字列」化されているため機能しません: (インデックス作成が発生した場合)
になる
これは、インデックスが作成された後に SL-UI を見るとわかります。
(DBのSL-UIに示されているように)PostのJSON表現には、のような名前と値のペアがないため、これは機能しません"Slug":"Some-Slug"
。これは ID であるため、ドキュメントの上に表示され、@metadata では_document_idの値として表示されます
後者は機能しますが、これは C# のように文字列として定義されている場合のみです。
Raven が文字列「Id 」を含むクエリを取得すると、それが[@metadata][_document_id]に対するクエリであることを自動的に意味するのではないかと思います。
ここには LINQ の良さはありません。非常に脆弱に見えます。ドメイン名のリファクタリングには耐えられません。Idは Post のフィールドではありませんが、このインデックスにより、「文字 G で始まるスラッグを持つすべての投稿を取得する」という、私がやりたいことを実行できました。また、DB に既にそのようなインデックスが必要な場合に、ID のインデックスを定義するのは嫌いです。
c# - RavenDbの子リストに含まれていません
私には実体があります。
次に、タグを指定していないすべてのエンティティをクエリする必要があります。
失敗する:
未処理の例外:System.InvalidCastException:タイプ'System.Linq.Expressions.MethodCallExpressionN'のオブジェクトをタイプ'System.Linq.Expressions.MemberExpression'にキャストできません。
プレーンクエリも機能しません:
...それは単に何も返しません。
そのようなクエリを書く方法は?
ravendb - RavenDbを使用した辞書のクエリ
私は次のように定義されたクラスを持っています:
私がここで見つけた議論に基づいて:http: //groups.google.com/group/ravendb/browse_thread/thread/88ea52620021ed6c? pli = 1
インスタンスは次のように非常に簡単に保存できます。
ただし、以下のようにクエリすると、次のようになります。
「'System.Linq.Expressions.InstanceMethodCallExpressionN'と入力して'System.Linq.Expressions.MemberExpression'」というエラーが表示されます。示されているように:
辞書のキーに基づいてクエリを実行するにはどうすればよいですか?
c# - WCF での Raven DB セッション管理
リクエストを受け入れ、いくつかの作業を実行し、結果を Raven DB に保存する WCF サービスがあります。セッション管理は、WCF を使用した NHibernate に似ていると考えていますが、よくわかりません。現在、WCF リクエストごとに 1 つのセッションを作成することを考えています。
他の推奨事項はありますか?
c# - RavenDB レプリケーションを無効にする方法
RavenDB レプリケーションを無効にするにはどうすればよいですか? その理由は、1 台のサーバーに単純なデータベースがあり、現時点ではレプリケーションが必要ないからです。
データベースが作成されたことを確認しようとすると、HTTP ステータス 404 の WebException が発生します。このエラーは、RavenDB が/docs/Raven/Replication/Destinationsにリクエストを行うときに発生しました。それとも、この例外を無視しますか?