質問するログイン新規登録

回答編集履歴

3

コントローラーの書き換え

2026/01/31 15:40

投稿

KOZ6.0
KOZ6.0

スコア2756

answer CHANGED
@@ -25,10 +25,41 @@
25
25
  }
26
26
  }
27
27
  ```
28
+ ---
29
+ 追記
30
+ ---
28
- クエリの実行は以下のようにます。
31
+ コントローラーは以下のように書き換えます。
29
32
  ```csharp
33
+ public async Task<IActionResult> Index(string db11Hiduke)
34
+ {
35
+ // 1. データベースから全データをリストとして取得
36
+ // (SortKeyはメモリ上の計算用なので、先にToListしてC#の世界に持ってくる)
30
- var sortedData = _context.Db11
37
+ var allData = await _context.Db11.ToListAsync();
38
+
39
+ // 2. ドロップダウン用の日付リストを作成
31
- .AsEnumerable() // ここで SQL が実行され全データがメモリ
40
+ // 重複を排除しSortKeyを使って日付順並べ替え
41
+ var hidukeList = allData
32
- .OrderBy(m => m.SortKey) // C# のプロパティとしてソート
42
+ .OrderBy(m => m.SortKey)
33
- .Select(m => m.hiduke);
43
+ .Select(m => m.hiduke)
44
+ .Distinct()
45
+ .ToList();
46
+
47
+ // 3. 表示用のデータ一覧
48
+ // 検索条件がある場合はフィルタリングし、最後にSortKeyで並べ替える
49
+ var displayData = allData.AsEnumerable();
50
+
51
+ if (!string.IsNullOrEmpty(db11Hiduke))
52
+ {
53
+ displayData = displayData.Where(a => a.hiduke == db11Hiduke);
54
+ }
55
+
56
+ // 4. ViewModelを組み立ててビューへ渡す
57
+ var db11SyuruiVM = new Db11SyuruiViewModel
58
+ {
59
+ Hidukes = new SelectList(hidukeList),
60
+ Db11s = displayData.OrderBy(x => x.SortKey).ToList()
61
+ };
62
+
63
+ return View(db11SyuruiVM);
64
+ }
34
65
  ```

2

クエリの実行を修正

2026/01/31 06:09

投稿

KOZ6.0
KOZ6.0

スコア2756

answer CHANGED
@@ -30,5 +30,5 @@
30
30
  var sortedData = _context.Db11
31
31
  .AsEnumerable() // ここで SQL が実行され、全データがメモリに乗る
32
32
  .OrderBy(m => m.SortKey) // C# のプロパティとしてソート
33
- .ToList();
33
+ .Select(m => m.hiduke);
34
34
  ```

1

クエリの実行を追加

2026/01/31 06:07

投稿

KOZ6.0
KOZ6.0

スコア2756

answer CHANGED
@@ -24,4 +24,11 @@
24
24
 
25
25
  }
26
26
  }
27
- ```
27
+ ```
28
+ クエリの実行は以下のようにします。
29
+ ```csharp
30
+ var sortedData = _context.Db11
31
+ .AsEnumerable() // ここで SQL が実行され、全データがメモリに乗る
32
+ .OrderBy(m => m.SortKey) // C# のプロパティとしてソート
33
+ .ToList();
34
+ ```