問題タブ [multi-mapping]
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# - Dapperでマルチマッピングを機能させることができません
Dapperで遊んで、これまでの結果に非常に満足しています-興味をそそられます!
Student
しかし今、私の次のシナリオは、2つのテーブル(aとテーブル)からデータを読み取ることAddress
です。
Student
テーブルの主キーは、、StudentID (INT IDENTITY)
です。テーブルへのリンクと呼ばれるFKもあります。Address
AddressID (INT IDENTITY)
Student
AddressID
Address
私のアイデアは、関心のあるプロパティを使用して、テーブルごとに1つずつ、2つのクラスを作成することでした。さらに、C#のクラスにPrimaryAddress
typeのプロパティをAddress
配置しました。Student
次に、1つのクエリで学生と住所の両方のデータを取得しようとしました-Githubページにあるサンプルを模倣します:
ここで、aPost
とaUser
が取得され、投稿の所有者がユーザーに設定されます-返されるタイプはPost
-正しいですか?
したがって、私のコードでは、汎用Query
拡張メソッドに2つのパラメーターを定義します。1つStudent
目は返される必要がありAddress
、2つ目はstudentインスタンスに格納されます。
問題は-VisualStudioでエラーが発生します:
一般的なメソッド'Dapper.SqlMapper.Query(System.Data.IDbConnection、string、System.Func、dynamic、System.Data.IDbTransaction、bool、string、int?、System.Data.CommandType?)'を使用するには、6つの型引数が必要です。
Dapperが6つの型引数でこのオーバーロードを使用することを主張する理由を私は本当に理解していません...
dapper - オブジェクト階層を作成するマルチマッパー
文書化された投稿/ユーザーの例によく似ているように見えるので、私はこれを少しいじっていますが、少し異なり、私にとってはうまくいきません.
次の単純化されたセットアップを想定しています (連絡先には複数の電話番号があります)。
複数の Phone オブジェクトを持つ Contact を返すものに行き着きたいと思っています。そうすれば、2 つの連絡先があり、それぞれに 2 つの電話がある場合、SQL はそれらの結合を合計 4 行の結果セットとして返します。次に、Dapper は、それぞれ 2 つの電話を持つ 2 つの連絡先オブジェクトをポップアウトします。
ストアド プロシージャ内の SQL は次のとおりです。
私はこれを試しましたが、4つのタプルになりました(これは問題ありませんが、私が望んでいたものではありません...結果を再正規化する必要があることを意味します):
別の方法 (下記) を試すと、「'System.Int32' 型のオブジェクトを 'System.Collections.Generic.IEnumerable`1[Phone]' 型にキャストできません」という例外が発生します。
私は何か間違ったことをしているだけですか?投稿/所有者の例と同じように見えますが、子から親ではなく親から子に移動する点が異なります。
前もって感謝します
.net - ネストされたマルチマッピングのDapper構文
これが、データベースからデータを取り込むストアドプロシージャです。
以下のdapperクエリを書き込もうとしましたが、例外が発生しました
以下の概念を使用しようとしましたが、単一のオブジェクトのみが返されます。人のリストが必要です。
前もって感謝します。
c# - Dapper.NET マルチ マッピング TSecond Deserializer が null です
Dapper を使用して非常に標準的なマルチ マッピング クエリを実行しようとしていますが、次のエラーが発生します。これが機能しているように見えるときに別のエラーが発生することもありますが、現時点では再現できません。最初の問題が解決されたら、この投稿に追加します。
クエリコードは次のとおりです。
Dapper.cs の 498 行目:
info.OtherDeserializers が null であるため、NullReferenceException が発生します。
これは、ストアド プロシージャの内臓です。
dapper コードを詳しく調べましたが、TFirst のデシリアライザーが null ではなく、TSecond のデシリアライザーが null であること以外に、場違いに見えるものは見つかりません。null のままにする TSecond のデシリアライザーを作成するときに問題が発生する可能性はありますか?
種類は次のとおりです。
c++ - マップの C++ マップを反復する方法
私は地図の地図を持っています
それを繰り返す:
エラーが発生します:
/blockquote>マップのマップを反復するにはどうすればよいですか?
c# - Dapper を使用して T-SQL ビューからオブジェクトを設定する
データ アクセスに Dapper を使用しようとしています (ASP.NET MVC3 FWIW で)。次のような T-SQL ビュー (SQL Server 内) があります。
とてもシンプルです。基本的に、それぞれが 1 つの会社を持つスタッフのリストです。
私が抱えている問題は、このクエリの出力を POCO にマップしようとしていることですが、ビューの各フィールドは一意でなければならないため (つまり、tblStaff に既に存在する Name ではなく CompanyName)、POCO へのマッピング動作していません。
コードは次のとおりです。
このパズルを解く方法について何かアドバイスはありますか? 私は現在、どのように進歩するかについて困惑しているので、ビューのやり方を変えることにオープンです。
c# - Dapperクエリをオブジェクトのコレクション(それ自体にいくつかのコレクションがあります)にマッピングする
単一のクエリ(または複数の結果セットを持つストアドプロシージャ)を実行したい。Dapperを使用してマルチマッピングを行う方法は知っていますが、2つのコレクションを同じ親にマッピングする方法を並べ替えることができません。基本的に、このオブジェクト定義を考えると...
どういうわけか次のようなDapperクエリを実行できるようにしたいと思います。
java - このマップを達成する方法> 構造
以下のようなデータがあります。
(上記のデータの各行は、フィールド「キー」と「値」を持つオブジェクトList<DataObject>
であり、すべて 1 つの List にあります)
次のようなデータを作成したいとMap<String, List<String>>
思います。
Map
データオブジェクトから上記の構造を達成する方法は?
** * ***他に* ** * **
外部ライブラリを使用する代わりに、純粋なJDK提供のクラスまたはインターフェースを使用して結果を達成することにもっと興味があります。何か助けはありますか?
dapper - 結合テーブルが使用されている場合、Dapper はマルチマッピングの結果をロードできますか?
多くの接続オブジェクトを持つアプリケーション オブジェクトがあります。これは .Net の世界では素晴らしいことですが、残念ながら、結合は複合キーを持つ結合テーブルを介して管理されます。マルチマッピングアプローチを使用して、これをダッパーでマッピングすることは可能ですか?
今のところ、私は2つの別々のSQLステートメントを使用していますが、うまくいきません(EF側から来ています)。ここに私が試したいくつかのコードがありますが、動作しませんでした...
私が取得し続けるエラーは「use splitOn」エラーですが、これは氷山の一角に過ぎないと確信しています。誰かがアイデアを持っているなら、私はすべて耳を傾けます。
dapper - Dapper > マルチ マッピングでビットをブール値に適切にマッピングできない
次のコードがあります。
2 つの「connection.Query」は同じ SQL を実行します。違いは、最初のものは DapperRows のリストを返すのに対し、2 番目のものはエンティティを自動的にマルチ マップする汎用 Query<> であることです。
ここで、最初の .Query() (DapperRows のリストを返す) で、ブール プロパティ (dB のビット) の「FillImmediately」と「FillCompletely」は、「1」か「0」かによって、クラスで true または false になります。 "DBで。それでうまくいきます。
ただし、.Query<>() を使用する場合、両方のプロパティは常に「false」です。.Query<>() はビットをブール値に適切にマップできないようです。
今日(1.42)の最新バージョンのDapperとSQL Server 2008を使用しています
考え?