回答編集履歴

2

修正

2018/01/19 07:44

投稿

Zuishin
Zuishin

スコア28656

test CHANGED
@@ -58,6 +58,30 @@
58
58
 
59
59
 
60
60
 
61
+ ```C#
62
+
63
+ return DBAccess.Select<ProductModel>(commandPair, GetProductModel());
64
+
65
+ ```
66
+
67
+
68
+
69
+ でなく
70
+
71
+
72
+
73
+ ```C#
74
+
75
+ return DBAccess.Select<ProductModel>(commandPair, GetProductModel);
76
+
77
+ ```
78
+
79
+
80
+
81
+ であることに注意してください。
82
+
83
+
84
+
61
85
  `GetProductModel` はデリゲートとして渡され、コールバックされます。
62
86
 
63
87
  その際に `DBAccess.Select<ProductModel>()` 内で `reader` が作られ渡されます。

1

修正

2018/01/19 07:44

投稿

Zuishin
Zuishin

スコア28656

test CHANGED
@@ -26,13 +26,9 @@
26
26
 
27
27
 
28
28
 
29
- return DBAccess.Select<ProductModel> (
29
+ SqlCommandPair commandPair = new SqlCommandPair(sql, sqlParameter.ToArray());
30
30
 
31
- new SqlCommandPair(sql, sqlParameter.ToArray()),
31
+ return DBAccess.Select<ProductModel>(commandPair, GetProductModel);
32
-
33
- GetProductModel
34
-
35
- );
36
32
 
37
33
  }
38
34
 
@@ -58,8 +54,6 @@
58
54
 
59
55
 
60
56
 
61
- 御覧の通り、ラムダ式をメソッドに変更して改行とインデントを変えただけです。
62
-
63
57
  `SqlCommandPair` と `Func<DbDataReader, ProductModel>` の二つの引数を持つ `DBAccess.Select<ProductModel>` を呼び出しています。
64
58
 
65
59