C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: postgresのデータ取得時のマッピング


(過去ログ 173 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■99530 / inTopicNo.1)  postgresのデータ取得時のマッピング
  
□投稿者/ 粗品 (1回)-(2022/04/22(Fri) 10:55:28)

分類:[VB.NET/VB2005 以降] 

環境
VisualStudio2017
vb.net(WinForms) .netframework 4.6.2
DB:postgresql4 + Npgsql 4.1.10 + EnterpriseLibrary.Data 5.0.414

DBに接続してデータを取得する際、Microsoft.Practices.EnterpriseLibrary.DataのIRowMapperで指定しているのですが
DBのテーブルhogeにcolumn1があり
class hogeにcolumn1とcolumn1xがあるとして、column1xは比較用に使うので当初はcolumn1の内容を入れたい場合

SQL="SELECT column1 FROM hoge"

Dim rowMapper As IRowMapper(Of hoge)

rowMapper = MapBuilder(Of hoge).MapAllProperties.
    Map(Function(x) x.column1x).ToColumn("column1").
    Build()

と個別指定していても
'The column column1x was not found on the IDataRecord being evaluated. This might indicate that the accessor was created with the wrong mappings.'
としてcolumn1xが無い。とエラーを出します。

今までは同様の構文でSQL Serverでは出来ていたので行けると思っていたのですが、
postgresqlでは不可なのでしょうか
もちろん
  "SELECT column1, column1 AS column1x"
とすれば通るのですが

何か対策をご存知の方がいらっしゃいましたら
よろしくお願いします

引用返信 編集キー/
■99531 / inTopicNo.2)  Re[1]: postgresのデータ取得時のマッピング
□投稿者/ Hongliang (1228回)-(2022/04/22(Fri) 12:28:34)
2022/04/22(Fri) 12:29:57 編集(投稿者)

基本的に、
MapAllProperties(全部のプロパティをマップする)→個別に不要なプロパティをDoNotMap()でマップから外す
MapNoProperties(プロパティをマップしない)→個別に必要なプロパティをMap().ToColumn()でマップに加える
といういずれかの手法をとるものではないでしょうか。</pre></pre>
引用返信 編集キー/
■99532 / inTopicNo.3)  Re[2]: postgresのデータ取得時のマッピング
□投稿者/ 粗品 (2回)-(2022/04/22(Fri) 13:02:41)
No99531 (Hongliang さん) に返信
> 2022/04/22(Fri) 12:29:57 編集(投稿者)
>
> 基本的に、
> MapAllProperties(全部のプロパティをマップする)→個別に不要なプロパティをDoNotMap()でマップから外す
> MapNoProperties(プロパティをマップしない)→個別に必要なプロパティをMap().ToColumn()でマップに加える
> といういずれかの手法をとるものではないでしょうか。</pre></pre>

MapNoProperties+Mapで期待通りの動作をしました。
ありがとうございました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -