問題タブ [dapper]

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 に答える
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 を使用してこれを処理できますか?

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

sql-server-2008 - Dapper を SQL 空間型と共にパラメーターとして使用する

基本的に次のようなクエリを実行する必要があるシステムがあります。

通常の SQL パラメーターを使用する場合、これを行うのは非常に簡単です。パラメーターを非典型的な方法で作成するだけです (ビルダー変数は、四角形を作成するために使用する SqlGeometryBuilder です)。

今、dapper を使用してこれを実行しようとすると、これをパラメーターとして使用する方法がわからないというエラーが表示されます。これを機能させた人、またはこれを有効にする方法についての指針はありますか? 回避策はありますが、それには文字列表現を使用し、それを SQL クエリでジオメトリ タイプに変換する必要があります。私は本当にそれをしたくありません。

コメントに答えると、「Microsoft.SqlServer.Types.SqlGeometry 型のメンバー パラメータはパラメータ値として使用できません」というエラーが表示されます。つまり、dapper は SqlGeometry オブジェクトをパラメーターとして処理する方法を知りません。

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

c# - Dapper multiselect:「AS」を使用しない限り、ネストされたクラスの主キーはマップされません

私には2つのクラスがあります:

次に、次のようにクエリを実行すると、次のようになります。

その結果、FooとBarの両方のすべてのプロパティがBar.BarIdを除いてマップされます。列名を確認し、データベースをBarクラスと照合した後も、違いは見つかりませんでした。

私が偶然見つけた奇妙なことの1つは、次のように書いた場合です。

Bar.BarIdは実際に期待どおりにマッピングされていますが、Dapperの使用方法を誤解していませんか、それともバグですか?

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

c# - Dapper.netを使用したマルチマッピングクエリでの予期しない動作

私はDapper.netを見始めたばかりで、いくつかの異なるクエリを試しています。そのうちの1つは、予期しない奇妙な結果を生成しています。

私は2つのテーブルを持っています- PhotosPhotoCategories、そのうちに関連していますCategoryID

写真表

PhotoCategoriesテーブル

私の2つのクラス:

マルチマッピングを使用して、のインスタンスを返したいのですPhotoが、関連するのインスタンスが入力されていますPhotoCategory

これを実行すると、すべてのプロパティにデータが入力されるわけではありません(DBテーブルとオブジェクト間で同じ名前が使用されているにもかかわらず)。

'p。*などを選択するとdon't' 私のSQL中で、そして代わりに。

私はフィールドを明示的に述べます。

クエリから戻りたいEXCLUDING p.CategoryIdのですが、すべてが入力されます(selectステートメントから除外したPhotoオブジェクトに対するCategoryIdを除く)。

ただし、そのフィールドをクエリに含めて、そのフィールドと、内でクエリされた他のすべてのフィールドをSQL入力できるようにする必要があります。

CategoryIdクラスからプロパティを除外して、IDが必要なときにPhoto常に使用することができます。Photo.PhotoCategory.CategoryId

PhotoCategoryただし、Photoオブジェクトのインスタンスを取得するときに、オブジェクトにデータを入力したくない場合があります。

上記の動作が発生している理由を誰かが知っていますか?これはDapperにとって正常ですか?

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

c# - Dapper - DynamicParameters を使用した演算子のようなもの

これは機能します:

これにより、「オブジェクト型 System.Int32[] から既知のマネージ プロバイダーのネイティブ型へのマッピングが存在しません。」がスローされます。

何か案は?

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

.net - MySql BIT(1) データ型をブール値ではなく ulong にマッピングする Dapper

Dapper と MySQL で上記の状況に遭遇した人はいますか? データ型が BIT(1) または BIT である MySQL (5.1) のすべてのテーブルで、Dapper は単純に ulong (UInt64) などのフィールドを返します。私は MySql.Data.MySqlClient を使用していますが、変換しようとしている EF にはそのような問題はありません。

助けてくれてありがとう。

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

c# - Dapper-dot-net を使用して単一の SP から複数のレコードをマップする方法

単一のストアド プロシージャの実行で 50 個の複数の個別の選択が返される状況で Dapper を使用したいと思います。個々の結果セットはどれも非常に広くはなく、最大で 20 列または 30 列になるでしょう。以下のコードは Dapper テストからのもので、この例が使用するのに適したプロトタイプであるかどうか疑問に思っています。

ありがとう、スティーブン

編集

これは、Marcsの回答に基づくサンプルです。

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

.net - dapperを使用して1対多のエンティティを挿入する

次の2つのクラスと対応するdbテーブルがあります。完全なオブジェクトグラフを挿入しようとしています(複数のコースを持つ学生)。Dapperを使用してこれを行う方法の例を探しています。IDは自動インクリメントIDフィールドです。

クラス

テーブル

学生
  ID[int](pk)
  名前[varchar(50)]

StudentCourse
  StudentId [int](fk)
  CourseId [int](fk)

コース
  ID[int](fk)
  名前[varchar(50)]

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

postgresql - PostgreSQL、値を「T」および「F」として格納するブール型がORMを壊す問題

Postgresテーブルでブールデータ型を定義してそこからクエリを実行すると、ブール列の結果は「t」または「f」として返されます。

ドライバーとしてNPGSQLを使用し、ORMとしてDapperを使用しています。Dapperは「t」または「f」をブール値に変換できず、すべてのブール値がFalseになるため、これにより問題が発生します。

Postgresでこの動作を変更する方法はありますか、それとも文字データ型を使用してこの動作をハックする必要がありますか?