自作ORマッピング

 いきなり挫折.
 DBのカラムの型を引いてきて,.NETの値型にマッピングをしてみた.ところが,よく考えると値型はnullをとることができない!
 そこで,System.Data.SqlTypes.SqlInt32とかNullを取れるクラスがいちおうあるので,それらに変えてみた.ところがここまできて根本的に間違っていることが分かった(浅はかすぎる〜).
 別のところでUpdate文を生成しているのだけど,ここでは型情報に関わらずToString()をしたうえで適切なエスケープを施し,文をビルドしているのだが,SqlInt32.NullをToString()すると帰ってくるのは"Null"という文字列だったりするのである.これではDB内でNullにしておきたいところに文字列を入れてしまうではないか.かといって,ひとつずつIsNullのチェックを入れるのはあまりにもマヌケです.
 使うのはstringとdecimalとdatetime三つなので,自作ラッパクラスを使うという手もあったが,結局,全部をstring型でもつことにした.今回の仕組みではどうせUIで受け取るデータは全部string型で,エラーチェックも先にはいるのだから,stringののまま入れればいいこととだとわかったのでした.