問題タブ [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.
orm - 静的クラス内での Dapper の使用
システムの同期を構築しています。ここで、実行されたすべてのストアド プロシージャをテーブルに挿入する必要があります。私の解決策は、静的クラスを追加し、その中で Dapper を実行することでした。理論的には、静的クラス/関数は、オブジェクトの状態を変更していない場合に使用しても問題ありません。細心の注意を払い、皆さんの考えをお聞きしたいと思います。将来的に問題を引き起こす可能性はありますか?
sql-server - VB.NET - PetaPoco\NPoco - 動的列と静的列を含むテーブルからデータをフェッチする - パフォーマンスの問題
まだ解決策を見つけていない特定の状況があります。
、、Users
などの既知の列を持つテーブルがある同じ構造のデータベースがいくつかあります (たとえば) 。同じテーブルには、実行時にのみ知ることができる動的なカスタム列があります。など: 、、など...UserID
UserName
UserMail
customField54
customField75
customField82
ユーザーのリストを表示する必要がある画面があり、何千ものレコードがあります (すべてのユーザーを表示する必要があります - 疑問の余地はありません)。
データベース 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 クラスにフェッチし、コレクション全体を反復処理することなく、すべてのユーザーの既知の値とカスタム フィールド ディクショナリを設定する方法があるかどうかを知りたいです。 .
ご理解いただければ幸いです。説明するのは本当に難しく、解決策を見つけるのは非常に難しい問題です。
c# - MicroLite ORM は DynamicObject / IDynamicObjectMetaProvider をサポートしていますか?
DynamicObject / IDynamicObjectMetaProvider 構造をサポートするマイクロオーム システムを探しています。
以下を入力:
MicroLiteException
追加情報とともに をスローするだけSystem.Object
です。
MicroLite はそのようなオブジェクトをサポートしていますか?
azure - MicroLite と Azure SQL データベース
Azure SQL データベースで MicroLite を使用する場合、既知の問題はありますか?
少し気がかりな奇妙な行動に遭遇します。データベースを監査するとき、クエリがサーバーによって非常に適切に処理されることを監視します (50ns)。ただし、「rpc 完了」イベントは、本来あるべき遅延 (500000ns) の数千倍の時間で到着します。このサーバーで Entity Framework を使用する場合、このような問題はありません。
ado.net - トランザクションで Azure Database のパフォーマンスが向上する理由
私たちは、Azure データベースに対してマイクロ Orm を使用することにしました。私たちのビジネスは「挿入」と「選択」のみを必要とするため、すべてのコード管理を抑制することにしSqlTransaction
ました (データの同時実行の問題はありません)。
次に、Azure データベースのインスタンスの応答が非常に遅いことに気付きました。「rpc completed」イベントは、単純な sql ステートメントを実行するのに必要な時間の数百倍の遅延で発生しました。
次に、コードを EF6 でベンチマークしたところ、サーバーが非常に迅速に応答することがわかりました。EF6 は組み込みのトランザクションを実装しているためSqlTransaction
、マイクロオームで (ReadCommited) を復元することにしましたが、すべて問題ないことがわかりました。
Azure Database には明示的なSqlTransaction
(コードによって管理される) が必要ですか? SqlTransaction
Azure データベースのパフォーマンスにどのような影響がありますか? なぜそのように実装されたのですか?
編集: トレースを収集した方法について、より正確な情報を投稿します。Azure イベント ログは、ナノ秒単位、ミリ秒単位で表示されることがあるようです。とても奇妙に思えます。
dapper - Dapper Contrib Insert MySQL 構文エラー
Dapper.Contrib を使用して MySQL で構文エラーが発生しています
mysql での Insert の正しい構文は次のとおりです。
私のコード:
これを解決するには?前もって感謝します
c# - NPoco でネストされたオブジェクトを更新する方法
ネストされたオブジェクトを多対 1 の状況で更新する例が見つかりません。Fetch でマッピングがどのように機能するかは明らかです。ネストされたオブジェクトのコレクションを更新することについて話しているのではなく、1 つだけです。したがって、次の例が与えられます。
データベースの Student テーブルには、School テーブルのレコードの ID である CurrentSchool 列があります。
School オブジェクト自体を更新するのではなく、学生を別のオブジェクトにマッピングします。これはクエリでは問題ありませんが、Student の CurrentSchool オブジェクトを変更して db.Update(studentObject) で保存すると、外部キーが更新されません。