回答編集履歴

1

追記

2019/04/26 07:40

投稿

退会済みユーザー
test CHANGED
@@ -75,3 +75,79 @@
75
75
 
76
76
 
77
77
  ![イメージ説明](58f7e6dcf6fa4b10bfe4f70520ee0b5a.jpeg)
78
+
79
+
80
+
81
+ **【追記】**
82
+
83
+
84
+
85
+ 下のコメントに「List<T> 型からも同様に可能です。後で回答欄に追記しておきます」と書きましたがそれを以下に書きます。
86
+
87
+
88
+
89
+ 上の回答のコードで、db.XXXXX に ToList メソッドを適用すれば List<T> 型のオブジェクトになりますが、List<T> 型のオブジェクトの場合でも全く同等な Linq 式が使えます。Linq to Entities か Linq to Objects かの違いがあるだけです。
90
+
91
+
92
+
93
+ 質問者さんのケースでは他システムと連携して以下のように List<T> 型のオブジェクトを取得済みなのですよね。
94
+
95
+
96
+
97
+ ```
98
+
99
+ List<Table_UseData> useData
100
+
101
+ List<Table_License> license
102
+
103
+ List<Table_Account> account
104
+
105
+ ```
106
+
107
+
108
+
109
+ であれば、以下のようにして望む結果が得られるのではないかと思います。
110
+
111
+
112
+
113
+ ```
114
+
115
+ var model = from u in useData
116
+
117
+ join l in license on u.LisenceID equals l.LisenceID
118
+
119
+ join a in account on l.AccountID equals a.AccountID
120
+
121
+ where a.AccountID == 1
122
+
123
+ select u;
124
+
125
+ ```
126
+
127
+
128
+
129
+ List<Table_UseData> からだけデータが得られれば良く、List<Table_License>、List<Table_Account> のデータは不要であればもっと単純に以下のようにしてもよさそうです。お試しください。
130
+
131
+
132
+
133
+ ```
134
+
135
+ var model = from u in useData
136
+
137
+ join l in license on u.LisenceID equals l.LisenceID
138
+
139
+ where l.AccountID == 1
140
+
141
+ select u;
142
+
143
+ ```
144
+
145
+
146
+
147
+ 注:Linq to Entities と Linq to Objects の違いは以下の記事を見てください。どちらが良いかは適材適所ですが、ASP.NET MVC + EDM なら前者だと思います。
148
+
149
+
150
+
151
+ Linq to Entities / Objects
152
+
153
+ [http://surferonwww.info/BlogEngine/post/2019/02/13/difference-in-linq-to-entities-and-objects.aspx](http://surferonwww.info/BlogEngine/post/2019/02/13/difference-in-linq-to-entities-and-objects.aspx)