回答編集履歴
1
追記
answer
CHANGED
@@ -1,3 +1,32 @@
|
|
1
1
|
> myView.BLists = await _context.BLists.GroupBy(x => x.Kind).ToListAsync();
|
2
2
|
|
3
|
-
それでエラーになりませんか? 前のスレッドのやり取りを見てない?
|
3
|
+
それでエラーになりませんか? 前のスレッドのやり取りを見てない?
|
4
|
+
|
5
|
+
**【2020/12/8 9:40 追記】**
|
6
|
+
|
7
|
+
コンパイルエラーだったんですね。見落としてました。
|
8
|
+
|
9
|
+
> 型 'System.Collections.Generic.List<System.Linq.IGrouping<string, SampleProject.Models.BList>>' を 'System.Collections.Generic.IEnumerable<SampleProject.Models.BList>' に暗黙的に変換できません。明示的な変換が存在します (キャストが不足していないかどうかを確認してください)
|
10
|
+
|
11
|
+
そのエラーは、エラーメッセージが言うように SampleViewModel クラスの BLists プロパティの型 IEnumerable<BList> を System.Collections.Generic.List<System.Linq.IGrouping<string, SampleProject.Models.BList>> に変更すれば出なくなります。
|
12
|
+
|
13
|
+
それでコンパイルは通るはずですが、相手が SQL Server でしょうから、今度は実行時に _context.BLists.GroupBy(x => x.Kind) のところでそれを SQL Server に発行するための SQL 文に変換できないということで、"Client side GroupBy is not supported" というエラーになると思います。
|
14
|
+
|
15
|
+
最初に回答したのはそのことを言ってます。解決策は前のスレッド [https://teratail.com/questions/307318](https://teratail.com/questions/307318) を見てください。
|
16
|
+
|
17
|
+
|
18
|
+
> SampleViewModelのView側1行目にあるModelのImport部分も
|
19
|
+
|
20
|
+
> @model DBAccessSample.Models.SampleViewModel
|
21
|
+
|
22
|
+
> ではなく
|
23
|
+
|
24
|
+
> @model IEnumerable<IGrouping <string,SampleProject.Models.SampleViewModel>>
|
25
|
+
|
26
|
+
> にするべきなのでしょうが
|
27
|
+
|
28
|
+
そこは、
|
29
|
+
|
30
|
+
> 実現したいことは、AListと、BListをGroupByしたもの、2つのModelをViewModelとして1つのViewに表示させることです。
|
31
|
+
|
32
|
+
という目的を果たすためにはそのままにしておかないとダメです。View の中で、controller から受け取った SampleViewModel の ALists, BLists プロパティで「AListと、BListをGroupByしたもの」を取得して表示するということになります。
|