質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Basic .NET

Microsoft Visual Basic .NET (VB.NET)とはオブジェクト志向のプログラム言語です。 Microsoft"s Visual Basic 6 のバージョンアップとしてみることができますが、Microsoft.NET Frameworktによって動かされています。

Q&A

解決済

1回答

3741閲覧

Dapperの使い方について。

yuki00079

総合スコア45

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Basic .NET

Microsoft Visual Basic .NET (VB.NET)とはオブジェクト志向のプログラム言語です。 Microsoft"s Visual Basic 6 のバージョンアップとしてみることができますが、Microsoft.NET Frameworktによって動かされています。

0グッド

0クリップ

投稿2017/04/17 05:26

編集2017/04/17 06:07

###前提・実現したいこと
Dapper.netの使い方について質問が御座います。
SQLの結果を取得する際に通常はマッピング用のクラスを作成する方法があるかと思います。
多くのSQL文を発行する際に、それぞれマップ用のクラスを作成するのは手間なのでサンプルを探っていた際にC#用のサンプルでは有りましたがDynamic型を利用した結果取得方法を見つけました。しかし、vb.net側のサンプルが見つけられずうまく実装できません。
お力お貸しして頂けますと幸いです。

###該当のソースコード

Dim result As IEnumerable(Of Object) = Nothing Using connection = New SqlClient.SqlConnection("接続文字列") connection.Open() result = connection.Query(SQL.ToString, New With {パラメーター}) connection.Close() End Using For Each r In result 'Option Strict On のため取れない。別の取得方法はあるのか・・・。 Next

###補足情報(言語/FW/ツール等のバージョンなど)
.net4.0

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

VB.NETはOption Strict OffしないとDynamic使えないって認識なので、OffしないのであればMap用オブジェクト作るしか無いのではと思います。
(最新が違ったらごめんなさい、VB仕事に使いませんし…でも.net4.0なら大丈夫かな)

マップ用クラス作ったらいいと思いますけどね
障害時にもクエリ結果のマッピング、ロジックどちらに原因があったかの切り分けになりますよ

投稿2017/04/17 06:54

haru666

総合スコア1591

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yuki00079

2017/04/18 02:40

返信ありがとうございます。 やはりvbとC#の仕様違いによるものですか。 ご指摘どおりマップ用のクラスを作成し対応したいと思います。 質問と趣旨がズレるのですが、マップ用クラス名称の規則はございますでしょうか?。 かなりの数のクラスを作ることになるので名称をどうするか考えております。 よろしくお願い致します。
haru666

2017/04/20 07:21

すみません、しばらく込み入っていてこちらのページ開いていませんでした。 うちは細かい仕事が多いので、大きな会社さんみたいなルールは回答しかねますが… それ以前に、難しいルールはないですね。 僕の作業の場合、先にどういった情報をやり取りするのかというI/Oがあって、そこにモデル名を付けていく形になっていますので、普通のDTOなんかと命名規則は変わらないと思います。 基本的に単純なテーブルとのORマッピングでは、テーブル定義(単数形)とモデル自体は1対1です。 何等かの検索結果のとりまとめにおいて特別な仕事上のルールを設けてはいないです。 SQLの結果とバインドする上で、難しい名前を付けたらSQL文が読み書きしづらくなりますから処理名にあってそうな名前適当につけてますね…名前空間もクラスライブラリそのものも分けてるから名前の衝突とか心配していませんしね。 ちょっとコレって回答でなくてすみません。
yuki00079

2017/04/24 02:58

回答いただきありがとうございました。 他のソースコードから調査してみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問