問題タブ [petapoco]

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 投票する
2 に答える
2061 参照

orm - ペタポコインサート問題

次のように定義されたクラスがあります。

このためのデータベース テーブルは、ID と Name プロパティを持つ単なる「場所」です。

他のいくつかのテーブル「会議」には、このテーブルに戻る外部キーがあります。そして、この例で取り組もうとしている範囲を超えていますが、PetaPoco が失敗する原因になっていると思います…

次のように、PetaPoco を使用して新しい場所をデータベースに挿入しようとしています。

そして、次のようなエラーをスローしています:

{"オブジェクト タイプ System.Collections.Generic.List`1[[NHRepoTemplate.sampleUsage.sampleModel.Meeting, NHRepoTemplate, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]] から既知のマネージド プロバイダー ネイティブへのマッピングは存在しませんタイプ。"}

子コレクションの存在が原因でペタポコが挿入できなくなっているように思えますが、それを「無視」するように伝える方法があるはずですよね?

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

petapoco - ViewModel での PetaPoco クエリ

このようなビューモデルがあった場合

これを入力するにはどうすればよいですか?

データベースへのクエリは 2 回でしょうか。1 回目は住所情報を入力し、もう 1 回目はすべての国を SelectList に返しますか?

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

relational-database - ペタポコと多対一、一対多、多対多の関係

PetaPocoは、マルチ POCO クエリを実験的な形で導入しました (今のところ)。彼らのブログ投稿とそれが提供するコードが示唆するように、これは見栄えがよく、レコードを繰り返さない限り、行ごとに複数の POCO をロードすると、すべてが1 対 1 の関係になります。

少なくとも一方が関係の場合はどうなりますか? 実際のサンプル コードは、多対 1 のリレーショナル データです。

サンプル コードは明らかに多対 1 の関係です。PetaPoco コードをテストしたことはありませんが、ブログ投稿で提供されているコードは何をしますか? 一部のユーザーが同じユーザーである場合や、同じユーザー オブジェクト インスタンスを共有している場合でも、すべてArticleが独自のオブジェクト インスタンスを持っていますか?User

では、他の多くの関係タイプはどうでしょうか? 彼らはどのように機能しますか?

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

model-view-controller - ドメイン エンティティ オブジェクトからデータベースを呼び出す

私は、通常は NHIbernate を使用するのではなく、プロジェクトで PetaPoco を使用しようとしています。コレクションとドメイン モデルからのコレクションの使用について質問があります。

名前とテキストを含むBlogPostがあり、次に名前、作成者、テキストを含むコメントがあるとしましょう

BlogPost を Comments に関連付けたい。これは、Blogposts_Comments テーブルを使用して SQL で行いました。NHibernate では、BlogPost にコメント コレクションを作成し、それをマップして取得するか、Lazy としてマークします。

私は、これらのコメントを遅延読み込みしようと考えているので、それを行うには、ブログ投稿の GetComments() メソッドでデータ アクセス オブジェクト GetCommentsForBlogPost(this) を呼び出します。私の質問は、これは良い習慣と見なされますか? ドメイン エンティティがデータ アクセス層を呼び出すようにしますか? 私のNHibernateプロジェクトでは、NHibernateプロキシ/マジックが残りを行ったので、彼らは自分自身を処理しました。

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

c# - 動的クエリに最適なオプションは?

古いアプリケーションを WebForms から MVC に移植する作業を行っています。そのプロセスの一部では、既存のデータ層を引き裂き、ロジックをストアド プロシージャからコードに移動しています。最初は基本的な C# SQL 関数 (System.Data.SqlClient) しか扱っていなかったので、SQL ステートメントを文字列として受け取って実行する軽量の疑似 ORM ( PetaPoco ) を使用しました。動的クエリの構築は、SQL でもほぼ同じように機能します。追加のコードを追加および削除する多くの条件 (平均クエリには約 30 個のフィルターがあります)。

そこで、少し調べてみると、いくつかの選択肢が見つかりました。

  • 必要に応じてクエリの一部を追加する一連の文字列と条件。特にクエリが複雑になると、本当に厄介であり、より良い解決策が存在する場合、私が追求したいものではありません.
  • L2E を使用した一連の条件。よりエレガントに見えますが、私がテストした L2E は全体的に肥大化しすぎており、ひどい経験でした。L2Sでも同じことができますか?もしそうなら、L2S は今後 5 ~ 10 年間存続しますか?
  • PredicateBuilderを使用します。これについてはまだ調べていますが、L2S に関する同じ質問です。
  • 編集: 既存のストアド プロシージャ モデルに固執することもできますが、とにかくそれらを書き直す必要があるため、他のオプションを見て損をすることはありません。

そこに他のオプションはありますか?言及された方法のいずれかについて経験を積んだ人は誰でも参加できますか?

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

petapoco - エンティティ関係で PetaPoco に挿入する

私は次のPOCOを持っています:

それぞれのテーブルに挿入を試みる以下のコードがあります。

ユーザーへの挿入は正常に機能しますが、注文への挿入は機能しません。POCOでこの関係がある場合、どのように挿入しますか? 挿入を行おうとしている場所には Order POCO しかないため、これは単純化されたアプローチです。ユーザー、注文、および製品テーブルに挿入するにはどうすればよいですか?

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

c# - PetaPocoがdbから戻るのはなぜですか。7のIDフィールドを10進数として挿入します。

挿入を実行すると、変数IDがオブジェクトとして返されます。ただし、私のデータベースではintであり、POCOではintですが、@@ IDENTITYを返すためのExecuteScalarのメソッド呼び出しが呼び出されると、オブジェクトとして数値7が返されますが、デバッガーはその小数を認識します。

したがって、私がint newID = (int)db.Insert(...)それを行うと、

これはフレームワークのバグですか、それともPetaPocoのバグですか?

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

petapoco - WHERE ステートメントがない場合、どのように自動選択句を実行しますか?

ドキュメントでは、テーブル名と主キー列で POCO を装飾できるため、SELECT * FROM TABLENAME を指定する必要がなく、WHERE を使用できると記載されています...

WHERE 句がない場合、この機能をどのように使用しますか?

0 投票する
9 に答える
21195 参照

petapoco - ペタポコで一括挿入・更新

メソッドを使用してSave()レコードを挿入または更新していますが、1 つのデータベース ヒットのみで一括挿入および一括更新を実行できるようにしたいと考えています。どうすればいいですか?

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

join - Petapoco のマルチマッピングは複数の JOIN を処理できますか?

Petapoco を使用して入力するために使用するリスト オブジェクトがあります。

クラスのプロパティと名前は、データベース スキーマと一致しています。メイン クラスはIssueで、名前とプロパティがデータベース スキーマと一致する他の 2 つのクラス、ConditionSeverityLevelに関連しています。

実際、問題のリストを取得するときは、マルチマッピング機能を使用して、単一のコマンドを使用して問題のリストと関連するSeverityLevelを取得しています。

ここで、Petapoco は複数の JOINS を処理しないように見えるため、取得した各 Issue にSourceConditionTargetConditionをアタッチする 2 番目のステップを実行する必要があります。

そうするには、次のいずれかを実行できます。

  • foreach ループで、Read の後に Source 条件と Target 条件をアタッチし、
  • または条件のリスト全体を取得してから、同じ種類の for-each を使用して各問題に添付します。

データベース内の条件のセットが限られているため、今のところ、2 番目のソリューションを使用しています。

とにかく、JOINED テーブルが追加されるのとほぼ同じ数のクエリを実行する必要があるため、この方法を実行するのは少し重いように思えます。

私はこのような仕事をすることができたのだろうか:

親愛なる Petapoco ユーザー、親愛なる Petapoco 作者、これはこれを処理する方法ですか?

代わりに Dapper を使用してこれを処理できますか?