問題タブ [db4o]

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.

0 投票する
1 に答える
205 参照

c# - db4o での問題...IIS のリセット/コンテナーが範囲外になった後、オブジェクトが返されない

したがって、おそらく db4o で悲劇的に間違ったことをして、この問題が発生しています...しかし、コンテキストをリセットするたびに、すべてのオブジェクトが失われます。これが意味することは、(IIS のリセットなどにより) コンテナー オブジェクトが範囲外になるとすぐに、以前に永続化したオブジェクトを取得できなくなるということです。「セッション」の範囲内ですべてを取得できますが、その「セッション」が終了するとすぐに何も返されません。奇妙なのは、データベース ファイルのサイズが大きくなり続けていることです。そのため、すべてがそこにあることがわかっているため、事後に返されることはありません。何が起こっているのか分かりますか?

db4o の一般的なラッパーは次のとおりです。

0 投票する
1 に答える
1047 参照

pdf - 画像やPDFをdb4oに保存する

リレーショナルデータベースにファイルを保存するのは良いことではないことを私は知っています。しかし、オブジェクトデータベースではどうでしょうか?それはまだ悪い考えですか、それともこの種の操作により適していますか?

0 投票する
1 に答える
242 参照

db4o - db4o 照会サブオブジェクト

db4o を使い始めたばかりで、問題に遭遇しました。

サブオブジェクトを持つオブジェクトがあります (おそらく正しい言葉ではありませんが、私の言いたいことが理解できることを願っています)。

サブオブジェクトには、開始日と終了日の 2 つの日付が含まれています。

DateTime.Now が開始日と終了日の間にあるサブオブジェクトが少なくとも 1 つある場合は、メイン オブジェクトを表示したいと思います。

ネイティブ クエリまたは SODA を使用する必要があります (プロジェクトで linq が機能していません)。

前もって感謝します!

/フレドリック

0 投票する
4 に答える
1772 参照

c# - DB4O でのタイプ別のクエリ

クラス型をC#の関数に渡すにはどうすればよいですか?

私は db4o と C# に慣れているので、チュートリアルを読んだ後に次の関数を書きました。

0 投票する
3 に答える
792 参照

asp.net - asp.netMediumTrust環境で実行されているdb4o

組み込みのクライアント/サーバーバージョンのdb4o(OpenFile()メソッドの代わりにOpenServer()を呼び出した)を使用しているので、複数のユーザーがデータベースの読み取りと書き込みを同時に行うasp.netWebサイトをホストできます。唯一の問題は、私たちが使用しているウェブホストが中程度の信頼環境であるため、アセンブリが部分的に信頼されている発信者をサポートしていないことを示すエラーをスローしていることです...

これを機能させる方法について誰かが何か提案があるかどうか疑問に思います。ありがとう!

:: アップデート ::

[AllowPartiallyTrustedCallers]属性を使用してdb4odllを再コンパイルしましたが、次の特定のエラーが発生します。

System.TypeInitializationExceptionは、ユーザーコードMessage="によって処理されませんでした。'DataObjecten.db4oManager'のタイプ初期化子が例外をスローしました。" TypeName = "DataObjecten.db4oManager" InnerException:System.Security.SecurityException Message ="タイプ'System.Security.Permissions.SecurityPermission、mscorlib、Version = 2.0.0.0、Culture = neutral、PublicKeyToken=b77a5c561934e089'の権限のリクエストに失敗しました。 「」Source = "Db4objects.Db4o" StackTrace:at Db4objects.Db4o.Internal.Platform4.AddShutDownHook(PartialObjectContainer container)at Db4objects.Db4o.Internal.PartialObjectContainer.Initialize1(IConfiguration config)at Db4objects.Db4o Db4objects.Db4o.Internal。

0 投票する
6 に答える
8206 参照

oop - オブジェクトデータベースで多対多の関係を設計するにはどうすればよいですか?

OOデータベースを見る時が来たと思い、次の小さなプロジェクトである小さなライブラリにdb4oを使用することにしました。

次のオブジェクトを検討してください:本、カテゴリ。

書籍は0-nのカテゴリに分類でき、カテゴリは0-mの書籍に適用できます。

私の最初の考えはBookCatecoryのような結合オブジェクトを持つことですが、少しグーグルした後、これは「RealOO」には適切ではないことがわかりました。

したがって、別のアプローチ(多くの人が推奨)は、Book.categoriesとCategory.booksの両方のオブジェクトにリストを含めることです。一方の側が関係を処理します。Book.addCategoryはCategoryをBook.categoriesに追加し、BookをCategory.booksに追加します。1回のメソッド呼び出しで2つのオブジェクトが変更された場合に、コミットとロールバックを処理するにはどうすればよいですか?

あなたの考えは何ですか?2番目のアプローチには明らかな利点がありますが、少なくとも私にとっては、最初のアプローチは正しいと感じます(より適切に標準化されています)。

0 投票する
1 に答える
437 参照

c# - 名前空間/アセンブリの名前が変更されたオブジェクトをdb4oで開く

.datファイルにdb4o形式のオブジェクトのセットがあります。そのファイル内のオブジェクトは、OldNamespace.MyObject、OldAssemblyNameです。

問題は、名前空間とアセンブリの名前をより永続的なものに変更したことです。アセンブリと名前空間の名前を変更する以外に(これは私が行っていることです)、オブジェクトを新しいアセンブリ/名前空間の名前で開く方法はありますか?

または、アセンブリ名と名前空間に「MyTest3」を使用し続けていますか?!

0 投票する
2 に答える
645 参照

c# - DB4O で「SELECT TOP n」を実行します。

C#のDB4Oで「SELECT TOP n」のようなものを実行する方法を知っている人はいますか

0 投票する
1 に答える
530 参照

silverlight - DB4O と Silverlight RIA サービス

最近の Silverlight / RIA Services プロジェクトで db4o OODBMS を使用することを検討しましたが、1 つだけアドバイスできることがあります。それは、関連付けを機能させる方法です。RIA サービスでは、関連するすべてのエンティティを AssociationAttribute でマークする必要があります。AssociationAttribute のコンストラクターでは、関連付けられたエンティティに対するエンティティのキ​​ーと、関連付けられたエンティティ自体のキーを指定する必要があります。

例として、CarID プロパティと Car プロパティを持つ Racer クラスと、ID プロパティを持つ Car クラスがあるとします。私の Racer クラスは次のようになります。

db4o (または任意の OODBMS) を使用する際に私が目にする問題は、外部キーと主キーが存在しないことです。これを RIA Services で機能させるには、独自の一意のキーを作成する必要がありますが、それは気にしません。そうするための最善の方法がわかりません。

では、私の質問は「これらのキー/ID をどのように作成しますか?」ということです。

自動インクリメント生成フィールドの概念がないため (私がまったく知らない)、手動でキーを安全にインクリメントするか、Guid のようなものを使用するかを選択する必要があります。前者は複数のユーザーやマルチスレッドで管理するのが難しいため、Guid を使用するのが最も簡単な解決策になると思います。

それでは、Guid の使用を検討してみましょう。最も簡単な解決策は、上記の例のように ID プロパティを作成することですが、int の代わりに Guid を使用します。新しいエンティティを作成した後、ID を新しい Guid に設定する必要があります。その後、Racer.Car プロパティを設定するたびに、Racer.CarID も設定する必要があります。

手動で行うとエラーが発生しやすくなるため、プロパティのゲッターとセッターで多くの処理を行いたいのですが、それを実装する最善の方法がわかりません。


それが私がこれまで考えてきたことです。Linq-to-SQL で生成されたコードがこれらの問題のいくつかをどのように処理するかを調べてみようと思います。そこに手がかりが見つかるかもしれません。

どんな提案でも大歓迎です。

ありがとう -
チャールズ

0 投票する
1 に答える
269 参照

linq - db4olinqクエリを改善する

このlinqクエリで問題が発生しました:

ご覧のとおり、すべてに、それをそのに接続する呼び出されたものPersistedCommitが含まれています。特定のfileInfo(パスで識別される)の以前のすべてのコミットを選択したい。Collection<int>FileIDsPersistedFileInfo

私は約800PersistedFileInfo秒と10PersistedCommit秒を持っています。クエリには約1.5秒かかります。これは私の意見では長すぎます。Commit-objectのコンストラクターは、指定された2つの引数のみを保存するため、ここではタイムロスはありません。

私の質問:
このクエリを書き直してパフォーマンスを向上させることはできますか?それともdb4oの問題ですか(代わりにSODAクエリを使用してください)?