質問編集履歴

1

本質問には関係ない部分の削除、誤記修正

2020/10/01 14:13

投稿

hayato208
hayato208

スコア19

test CHANGED
File without changes
test CHANGED
@@ -2,11 +2,13 @@
2
2
 
3
3
  前提
4
4
 
5
- [.NETアプリケーション開発入門](http://kazunori-kimura.github.io/how-to-develop-dot-net-apps/asp-101.html)を参考にDB Firstて2つのView”StudentInfoes”UserInfoes”を作成
5
+ Controllerに該当するStudentInfoesController.cs、Model該当するStudentInfo.cs、Viewに該当するIndex.chtmlを作成
6
+
7
+ ・DBのリレーションは下図の通り
6
8
 
7
9
  実現したいこと
8
10
 
9
- StudentInfo.cshtmlにてUserInfoテーブルのデータを取得・表示したい
11
+ Index.cshtmlにてUserInfoテーブルのデータを取得・表示したい
10
12
 
11
13
  DBは下図の通りです。
12
14
 
@@ -24,9 +26,59 @@
24
26
 
25
27
 
26
28
 
29
+ DBは下記の通りUserInfoの外部キーにStudentIdを据えています。
30
+
31
+ UserInfo
32
+
33
+ ```
34
+
35
+ CREATE TABLE [dbo].[UserInfo] (
36
+
37
+ [StudentId] INT NOT NULL,
38
+
39
+ [UserInfoId] INT NOT NULL,
40
+
41
+ [ClassName] NVARCHAR (128) NULL,
42
+
43
+ PRIMARY KEY CLUSTERED ([UserInfoId] ASC),
44
+
45
+ CONSTRAINT [FK_UserInfo_ToTable_3] FOREIGN KEY ([StudentId]) REFERENCES [dbo].[StudentInfo] ([StudentId])
46
+
47
+ );
48
+
49
+ ```
50
+
51
+ StudentInfo
52
+
53
+ ```
54
+
55
+ CREATE TABLE [dbo].[StudentInfo] (
56
+
57
+ [StudentId] INT NOT NULL,
58
+
27
- *いずれも、StudentInfoのMVC、またソースは該当箇所のみ抜粋
59
+ [StudentName] NVARCHAR (128) NULL,
60
+
28
-
61
+ PRIMARY KEY CLUSTERED ([StudentId] ASC)
62
+
63
+ );
64
+
65
+ ```
66
+
67
+
68
+
69
+ ControllerではUserInfoと内部結合しており、SELECTにてStudentId,StudentName,ClassNameを取得、Index.cshtmlにアクセスした際、StudentName,ClassNameを表示する処理を行いたいです。
70
+
71
+ ここで、StudentId,StudentNameは正常に取得・表示出来ておりますが、ClassNameはNULLを返している状態です。
72
+
73
+ *該当箇所のみ抜粋
74
+
75
+
76
+
29
- ```Controllers
77
+ Controller部分
78
+
79
+ StudentInfoesController.cs
80
+
81
+ ```C#
30
82
 
31
83
  public ActionResult Index()
32
84
 
@@ -44,7 +96,7 @@
44
96
 
45
97
  UserInfo.ClassName
46
98
 
47
- FROM
99
+ INNER FROM
48
100
 
49
101
  StudentInfo
50
102
 
@@ -64,37 +116,83 @@
64
116
 
65
117
  ```
66
118
 
67
-
119
+ View部分
120
+
68
-
121
+ Index.cshtml
122
+
69
- ```Index
123
+ ```C#
124
+
70
-
125
+ <!DOCTYPE html>
126
+
127
+
128
+
129
+ <html>
130
+
131
+ <head>
132
+
133
+ <meta name="viewport" content="width=device-width" />
134
+
135
+ <title>生徒名簿</title>
136
+
137
+ </head>
138
+
139
+ <body>
140
+
71
- @foreach (var item in Model) {
141
+ <table class="table">
72
142
 
73
143
  <tr>
74
144
 
75
- <td>
145
+ <th>
76
-
146
+
77
- @Html.DisplayFor(modelItem => item.StudentName)
147
+ 生徒名
78
-
148
+
79
- </td>
149
+ </th>
80
-
150
+
81
- <td>
151
+ <th>
82
-
152
+
83
- @Html.DisplayFor(modelItem => item.ClassName)
153
+ クラス名
84
-
154
+
85
- </td>
155
+ </th>
86
-
87
- <td>
88
-
89
- </td>
90
156
 
91
157
  </tr>
92
158
 
159
+
160
+
161
+ @foreach (var item in Model)
162
+
163
+ {
164
+
165
+ <tr>
166
+
167
+ <td>
168
+
169
+ @Html.DisplayFor(modelItem => item.StudentName)
170
+
171
+ </td>
172
+
173
+ <td>
174
+
175
+ @Html.DisplayFor(modelItem => item.ClassName)
176
+
177
+ </td>
178
+
179
+ </tr>
180
+
181
+ }
182
+
183
+ </table>
184
+
185
+ </body>
186
+
187
+ </html>
188
+
93
- ```
189
+ ```
94
-
95
-
96
-
190
+
97
- ```Model
191
+ Model部分
192
+
193
+ StudentInfo.cs
194
+
195
+ ```C#
98
196
 
99
197
  public partial class StudentInfo
100
198
 
@@ -126,7 +224,7 @@
126
224
 
127
225
  ・StudentInfoにて実行したCRUDををUserInfoでも実行したところ、StudentInfoのデータは取得・表示できた。
128
226
 
129
- 以上より、多重度の違いによってデータの取得・表示が異なるのでしょうか。
227
+ 以上より、多重度が関係していると思ったですが、多重度の違いによってデータの取得・表示が異なるのでしょうか。
130
228
 
131
229
  助言いただけると幸いです、よろしくお願いいたします。
132
230