問題タブ [micro-orm]

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 に答える
439 参照

orm - 静的クラス内での Dapper の使用

システムの同期を構築しています。ここで、実行されたすべてのストアド プロシージャをテーブルに挿入する必要があります。私の解決策は、静的クラスを追加し、その中で Dapper を実行することでした。理論的には、静的クラス/関数は、オブジェクトの状態を変更していない場合に使用しても問題ありません。細心の注意を払い、皆さんの考えをお聞きしたいと思います。将来的に問題を引き起こす可能性はありますか?

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

sql-server - VB.NET - PetaPoco\NPoco - 動的列と静的列を含むテーブルからデータをフェッチする - パフォーマンスの問題

まだ解決策を見つけていない特定の状況があります。

、、Usersなどの既知の列を持つテーブルがある同じ構造のデータベースがいくつかあります (たとえば) 。同じテーブルには、実行時にのみ知ることができる動的なカスタム列があります。など: 、、など...UserIDUserNameUserMailcustomField54customField75customField82

ユーザーのリストを表示する必要がある画面があり、何千ものレコードがあります (すべてのユーザーを表示する必要があります - 疑問の余地はありません)。

データベース A のユーザー テーブルの列は次のようになります。

例として、別のデータベース B があり、そこにあるユーザー テーブルは次のようになっているとします。

毎回別のデータベースに接続する単一のコードがあります。だから私は単一のコード - >複数のデータベースを持っていますが、各データベースの違いはUsersテーブルのカスタムフィールドです。

DataTable を使用する場合は、次のクエリを実行できます。

そして、次のようにカスタム フィールドの値を動的に取得できます。


私の意図は、DataTables を操作することではありません。強い型付けされたオブジェクトを操作したい。内部の customFields を使用してユーザーの POCO を作成することはできません。これは、データベースごとに Users テーブルに異なる customFields 列があるため、厳密に型指定された変数を使用してオブジェクトを作成できないためです。

次に、内部に既知の列を含むユーザー クラスと、customFields を保持する辞書を作成することにしました。

VB.NET で、次のようなクラス Users を作成しました。

UserIDクラスには、 、 などの静的な値がありますUserName。また、 とその値のディクショナリがあるcustomFieldIDsため、1 回のアクションで値を取得できます (O(1) の複雑さ)。


MicroORM PetaPoco\NPoco を使用して値を入力します。ORM を使用すると、次のように呼び出して、自分でデータを反復処理することなく、Users データを取得できます。

しかし、customFields辞書にはデータが取り込まれていません。userListデータを入力するには、ユーザーごとに繰り返してcustomFieldsデータを取得する必要があります。これは、データをフェッチするための非常にコストのかかる方法であり、パフォーマンスが非常に低下します。

単一のコマンドで PetaPoco\NPoco を使用してデータを User クラスにフェッチし、コレクション全体を反復処理することなく、すべてのユーザーの既知の値とカスタム フィールド ディクショナリを設定する方法があるかどうかを知りたいです。 .

ご理解いただければ幸いです。説明するのは本当に難しく、解決策を見つけるのは非常に難しい問題です。

0 投票する
0 に答える
180 参照

c# - MicroLite ORM は DynamicObject / IDynamicObjectMetaProvider をサポートしていますか?

DynamicObject / IDynamicObjectMetaProvider 構造をサポートするマイクロオーム システムを探しています。

以下を入力:

MicroLiteException追加情報とともに をスローするだけSystem.Objectです。

MicroLite はそのようなオブジェクトをサポートしていますか?

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

azure - MicroLite と Azure SQL データベース

Azure SQL データベースで MicroLite を使用する場合、既知の問題はありますか?

少し気がかりな奇妙な行動に遭遇します。データベースを監査するとき、クエリがサーバーによって非常に適切に処理されることを監視します (50ns)。ただし、「rpc 完了」イベントは、本来あるべき遅延 (500000ns) の数千倍の時間で到着します。このサーバーで Entity Framework を使用する場合、このような問題はありません。

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

ado.net - トランザクションで Azure Database のパフォーマンスが向上する理由

私たちは、Azure データベースに対してマイクロ Orm を使用することにしました。私たちのビジネスは「挿入」と「選択」のみを必要とするため、すべてのコード管理を抑制することにしSqlTransactionました (データの同時実行の問題はありません)。

次に、Azure データベースのインスタンスの応答が非常に遅いことに気付きました。「rpc completed」イベントは、単純な sql ステートメントを実行するのに必要な時間の数百倍の遅延で発生しました。

次に、コードを EF6 でベンチマークしたところ、サーバーが非常に迅速に応答することがわかりました。EF6 は組み込みのトランザクションを実装しているためSqlTransaction、マイクロオームで (ReadCommited) を復元することにしましたが、すべて問題ないことがわかりました。

Azure Database には明示的なSqlTransaction(コードによって管理される) が必要ですか? SqlTransactionAzure データベースのパフォーマンスにどのような影響がありますか? なぜそのように実装されたのですか?

編集: トレースを収集した方法について、より正確な情報を投稿します。Azure イベント ログは、ナノ秒単位、ミリ秒単位で表示されることがあるようです。とても奇妙に思えます。

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

dapper - Dapper Contrib Insert MySQL 構文エラー

Dapper.Contrib を使用して MySQL で構文エラーが発生しています

mysql での Insert の正しい構文は次のとおりです。

私のコード:

これを解決するには?前もって感謝します

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

c# - NPoco でネストされたオブジェクトを更新する方法

ネストされたオブジェクトを多対 1 の状況で更新する例が見つかりません。Fetch でマッピングがどのように機能するかは明らかです。ネストされたオブジェクトのコレクションを更新することについて話しているのではなく、1 つだけです。したがって、次の例が与えられます。

データベースの Student テーブルには、School テーブルのレコードの ID である CurrentSchool 列があります。

School オブジェクト自体を更新するのではなく、学生を別のオブジェクトにマッピングします。これはクエリでは問題ありませんが、Student の CurrentSchool オブジェクトを変更して db.Update(studentObject) で保存すると、外部キーが更新されません。