ASP.netのDtoコードを生成するための簡易関数
前提
- postgreSQLとASP.Netを利用した、Dtoソースコードの生成が目標
- テーブル定義のExcelシートがあり、そこからVLOOKUP等で必要な順に並べ終えていること
- 型はVARCHARとINTEGERのみを想定(※)
(※表記が異なったり、DateTime等が必要な場合はソースコードの条件文(l.6~12くらい)を変更)
想定
このようなセル指定に対して
A | B | C | D | E | F | G | |
---|---|---|---|---|---|---|---|
1 | 論理名 | 物理名(DBカラム名) | 型名 | 文字列長 | Not Null | - | GetSourceCode |
2 | サンプル数値 | sample_num | INTEGER | (ここに簡易関数を指定) | |||
3 | サンプル文字列 | sample_str | VARCHAR | 1024 | ○ | (ここに簡易関数を指定) |
こうなるのが目標
dtoSample.cs
/// <summary>
/// サンプル数値
/// </summary>
public int? sample_num { get; set; }
/// <summary>
/// サンプル文字列
/// </summary>
public string sample_str { get; set; }
完成品
引数
- logicName: 論理名(日本語名、DBのコメントに記述する名前)
- sourceName: 物理名(DB上のカラム名)
- typeStr: カラムの型名
- charLng(Optional): VARCHARの場合の文字列長
- IsNotNullMark(Optional): Not Nullの場合のテーブル定義上の記号等(空でなければNot Nullとする)
ソースコード
GetDtoCode.bas
Public Function GetDtoCode(ByVal logicName As String, ByVal sourceName As String, _
ByVal typeStr As String, _
Optional ByVal charLng As Long = 0, _
Optional ByVal IsNotNullMark As String = "") As String
Dim tempType As String
If typeStr = "VARCHAR" Then
tempType = "string "
ElseIf IsNotNullMark <> "" Then
tempType = "int "
Else
tempType = "int? "
End If
GetDtoCode = vbTab & "/// <summary>" & vbCrLf & _
vbTab & "/// " & logicName & vbCrLf & _
vbTab & "/// </summary>" & vbCrLf & _
vbTab & "public " & tempType & sourceName & " { get; set; }" & vbCrLf
End Function
実行結果
sample
// 出したいセルに以下のように指定
// 指定順は先述の引数の順になるようにする
G2セル(INTEGER): =GetDtoCode(A2,B2,C2)
G3セル(VARCHAR): =GetDtoCode(A3,B3,C3,D3,E3)
// 結果
" /// <summary>
/// サンプル数値
/// </summary>
public int? sample_num { get; set; }
"
" /// <summary>
/// サンプル文字列
/// </summary>
public string sample_str { get; set; }
"
これでG列の出力分をコピーしてテキストエディタで少し手直しすれば完成。
※ソースコードへの貼り付け前に、"(ダブルクォーテーション)を置換等で取り除いてください。
(ファイル出力できるようにすれば必要ない)