問題タブ [npoco]
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.
c# - NPOCO: カスタム Mapper が呼び出されないのはなぜですか
私のエンティティの 1 つで、区切り文字列 (DB から) をディクショナリに変換する特別なマッピングが必要です。ダミーのプロパティを使用する代わりに、こちらで説明されているように、よりエレガントな方法はカスタムマッパーになると思いました
私の問題は、マッパーからのメソッドが呼び出されず、NPOCO が私の db-string を辞書に変換しようとして失敗することです。
マッパーを誤解しているか、何かが欠けている可能性があります。しかし、なぜそれが機能しないのかを説明することはできません。
マイ マッピング (簡易版)
マイ マッパー (あまり機能しません)
私のデータレイヤー(コンストラクター)
したがって、少なくとも私にはすべてが順調に見えます。私が見逃しているアイデア。現在NPOCO 2.9.103を使用していますが、v3にアップデートできるか確認中です
c# - IDataItem を実装する各型には、関連付けられた文字列 (SQL select qry) が必要ですが、型をインスタンス化する前にアクセスが必要です
私のアプリケーションには、IDataItem を実装する一連の型があります。これらはすべて、データベース行を表す単純な「DTO」型です。インスタンスは、データベースに対して SQL 選択クエリを実行することにより、PetaPoco (マイクロ ORM) を使用して作成されます。SQL 選択クエリは型に固有であり、アプリケーションのバージョン番号にも依存します (型 X にプロパティ Y があるとしますが、アプリ バージョン N の前に対応する列が DB に存在しない場合、クエリはデフォルト値を返します)。 Yについて)。
アプリケーションの性質は、これらのタイプがたくさんあるということであり、その数は将来的に増加します。(i) コードの量を最小限に抑え、(ii) 将来の開発者が型を設計するときに必要な SQL クエリを設計するよう強制するために、データ アクセス層でジェネリックを使用しようとしています。
したがって、データアクセスレイヤーで必要なのは、次のメソッドです。
- 型パラメータ T:IDataItem を持つ
- T の IEnumerable を返します
- T に関連付けられた SQL 選択クエリを検索します
- PetaPoco を使用して DB に対してクエリを実行し、T のリストを作成します (それよりも少し複雑です。動的な where 句もありますが、単純にするために省略しています)。
私の課題は、T のインスタンスが作成される前に、型パラメーター T の SQL クエリを取得する方法です。理想的には、IDataItem にメソッドを追加します (例: string SqlSelectFrom(int appVersion)) が、それを呼び出すインスタンスが必要です (インターフェイスだけが静的メンバーを必要とする場合!)。私が今持っている最高のものは、次のようなデータ アクセス レイヤー内の関数です (ただし、これは、将来の型の開発者に SQL クエリの実装を強制するという私の要件を実際には満たしていません)。
これを達成するためのより良いパターンはありますか?
postgresql - NPoco の DbProviderFactory を構成する方法は?
PetaPoco から NPoco に切り替えていますが、Npgsql を使用している PostgreSQL インスタンスに接続の問題があります。
- 構成は、私の Web プロジェクトの web.config にあります
- NPoco/Npgsql は DAL アセンブリにあります。
- ConnectiongString は正しく動作します
この問題は、NPoco を使用する DbProviderFactory から発生しているようです (PetaPoco で動作するため)。
"invariant="Npgsql" を使用すると、データベースのインスタンス化で次のエラー メッセージが表示されます: "要求された .Net Framework Data Provider が見つかりません。インストールされていない可能性があります。」
"invariant="Npgsql2" を使用すると (NPoco の Wiki に示されているように、NPoco v3 を使用している場合でも)、任意のクエリでこのエラー メッセージが表示されます (ただし、DB インスタンス化の後):「初期化文字列のフォーマットは、で始まる仕様に準拠していませんインデックス 0"
「タイプ」を変更して、Npgsql が見つかるアセンブリを示しようとしましたが、何も解決しませんでした。
構成を変更して機能させるにはどうすればよいですか?
sql - テーブル、列名がデータベースマッピングから置換されたNPocoプレーンSQLリクエスト?
データクラスがあるとします
今、テーブルに対して単純な SQL クエリを実行したいのですが、クエリでテーブル/列名をハードコーディングしたくありません。たとえば、「update some_table set some_column = replace(some_column, '...', '...')」は、テーブル、列名がリクエストにハードコーディングされているため、不適切です。「update {{ MyData }} set {{ Name }} = ...」のようなものを好みます。ここで、{{ MyData }} {{ Name }} はテーブル、NPoco データベース マッピングの列名に置き換えられます。NPoco データベースからこの情報を取得することは可能ですか?
npoco - NPoco を使用して新しいデータベースを作成する
NPoco を使用してデータベースを作成しようとしています。どうすればそれができるのか知りたいですか?Npoco でデータベースを作成/開始する方法をリストアップしてください。事前に感謝します
many-to-many - nPoco V3 - 多対多が機能しない
多くの役割を持つユーザーがいます
私が達成しようとしているのは、1 つのクエリですべてのロールを持つユーザーを取得することですが、これまでのところ失敗しています。マッピングには、カスタムのコンベンションベースのマッパーを使用します (コードを提供できますが、かなり大きいです)。
ここで説明されているように、FetchOneToManyを試し、Fetchを試しました
https://github.com/schotime/NPoco/wiki/One-to-Many-Query-Helpers https://github.com/schotime/NPoco/wiki/Version-3
ただし、役割は常に空です。ロールとユーザー自体は正しくマッピングされており、次のような関係を指定しようとしました
繰り返しますが、役に立ちませんでした。役割は空です。
何が欠けているのかわかりません。何か案は?