問題タブ [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.
c# - Dapper を使用して Enum プロパティを設定する
Dapper の Query() 関数を使用して、列挙値であるプロパティを持つクラスに入力しようとしています。私のデータベースでは、この列はバイトとして保存されます。ただし、クラスでは列挙型です。古い ADO.NET アプローチでは、リーダー ループ中に次のように変換します。
Dapper を使用している場合、この変換を行う方法がわかりません。たとえば、次のようなことをするとき
タイプのエラーが発生します
Dapper の Query() を使用して、列挙型のプロパティを含むクラスを埋める方法はありますか?
orm - ネストされたオブジェクトのDapperクエリの記述
私は以下のようなコード構造を持っています:
これが、データベースからデータを取り込むストアドプロシージャです。
データベースからすべてのPersonをプルするDapperクエリを作成するにはどうすればよいですか?
例:
List<Person> Persons = DbConn.Query<Person>("SpGetAllPersons", CommandType.StoredProcedure);
c# - Dapper を使用して集約オブジェクトを効率的に選択するにはどうすればよいですか?
集合体を形成する一連のオブジェクトがあるとしましょう。
Dapperを使用して、データベース内のテーブルからこれらを設定する最良の方法は何ですか(私の場合はpostgresですが、それは問題ではありません)。この例のテーブルは、オブジェクト モデルとほぼ 1 対 1 です。各下位オブジェクトへの外部キー関係を表すクラスの Items プロパティ。つまり、3 つのテーブルで、A は B と 1 対多の関係を持ち、B は C と 1 対多の関係を持ちます。
そのため、AI の特定の ID に対して、オブジェクトにすべての子データも含める必要があります。
私の最善の推測は、何らかの形で QueryMultiple を使用する必要があるということですが、それを行う最善の方法がわかりません。
c# - Dapper と匿名型
Dapper で匿名型を使用することは可能ですか?
dynamic ie の使い方がわかります
それは可能ですか?
またはその後のいくつかのバリエーション?
編集
現在、私がどのように Dapper を使用しているかをお見せしたいと思います。私は (InMemoryCache を使用して) データをキャッシュする傾向があるので、最初に 1 つの大きなクエリを実行するだけで (Dapper を使用すると非常に高速です)、Linq を使用してすべてをリポジトリに並べ替えます。
InMemoryCache は次のようになります
c# - 文字列またはインデックスを介して Dapper FastExpando の列にアクセスする方法はありますか?
オブジェクトを取り込みDapper FastExpando
、設計/コンパイル時ではなく実行時に列名を動的に参照できるようにしたいと考えています。だから私は次のことができるようにしたい:
次のことができるようになりたいです。
私はできることを理解しています:
しかし、必要なプロパティの名前は実行時までわからないため、それはできません。
この SO Questionからの答えは機能しません。私はまだ同じTarget Invocation
例外を受け取ります。そう...
Dapper FastExpando でやりたいことを実行する方法はありますか?
c# - 列挙型を文字列としてデータベースに保存
私はダッパーを試しています。列挙型を持つクラスがあり、値はデータベースに文字列として保存されます。
これは、GenericEnumMapper を使用して FluentNHibernate で動作します
Dapperで同じことをすることは可能ですか?
sql-server - SqlConnection / System.Transactions を使用したリクエストごとのセッション
プロジェクトで Dapper を使い始めたばかりで、過去数年間は NHibernate や EF などの ORM を主に使用していました。
通常、Web アプリケーションでは、リクエストごとにセッションを実装し、リクエストの開始時にトランザクションを開始し、最後にコミットします。
SqlConnection / System.Transactions を直接操作する場合、同様のことを行う必要がありますか?
StackOverflow はどのようにそれを行いますか?
解決
@gbn と @Sam Safron の両方のアドバイスを受けて、私はトランザクションを使用していません。私の場合、読み取りクエリのみを実行しているため、トランザクションを使用する必要はないようです (暗黙のトランザクションについて言われたこととは対照的です)。
リクエストごとに接続を使用できるように、軽量のセッション インターフェイスを作成します。Dapper を使用すると、オブジェクトを構築するためにいくつかの異なるクエリを作成する必要があり、むしろ同じ接続を共有したいので、これは私にとって非常に有益です。
リクエストごとに接続をスコープして破棄する作業は、私の IoC コンテナー (StructureMap) によって行われます。
c# - Oracle での Dapper の使用
私たちはデータベース プロバイダーとして Oracle を使用しており、データ アクセス レイヤーの一部 (維持が難しく、XSD のマージが難しい) を、最下層で Dapper を使用するより健全なリポジトリ ベースのパターンに置き換えることを検討しています。ただし、オラクルで使用すると、多くの問題が発生しました。
名前付きパラメータ: これらは、クエリで使用されるたびに無視されるように見えます。Oracle は、任意の順序でそれらを解釈するようです。SqlMapper は正しい名前のパラメーターを返しますが、Oracle では正しく解釈されません。
変数の「@」命名規則は、Oracle の名前付きパラメーターと互換性がありません。パラメータの前に「:」が表示されることを期待しています
以前にこれに遭遇した人はいますか?回避策はありますか?
dapper - Dapper-単一の戻り値を持つマルチマッピング
以下は、オブジェクトのページリストを返すために使用しているコードです。
これは機能しますが、基準を2回定義する必要があることを意味します。1回はカウントクエリ用、もう1回は結果セットクエリ用です。文字列の連結に頼るのではなく、1つのクエリだけを実行できます。
ただし、Dapperを使用してこれをマッピングすることはできないようです。複数の結果がないため、上記と同じ方法を使用することはできません。マルチマッピングを使用してみましたが、これはIEnumerableを返すことを期待しています。
以下にどのようにマッピングしますか?
ありがとう
ベン
.net - DapperはSQL2008テーブル値パラメーターをサポートしていますか?
テーブル値のパラメータデータをDapperを使用してストアドプロシージャに渡すことができるかどうかを誰かが知っていますか?