という名前IssueStatuses
のテーブルと、Issues という名前の別のテーブルがあります。Issues にはと がStatusID
ありSubStatusID
、どちらも、IssueStatuses
次のように、 であるかどうかを示す追加のフィールドがあるテーブルからのSubStatus
ものです。
問題のステータス
- 問題ステータスID
- 問題のステータス
- IsSubStatus
SubStatuses
問題の特定のリストのリストを取得しようとしています。SQLでは次のとおりです。
SELECT iss.IssueStatus, COUNT(iss.IssueStatus) AS Total
FROM Issues AS Issues
INNER JOIN Rooms r ON Issues.RoomID = r.RoomID
INNER JOIN Locations l ON l.LocationID = r.LocationID
INNER JOIN Customers c ON l.CustomerID = c.CustomerID
INNER JOIN (SELECT * FROM IssueStatuses WHERE IsSubStatus = 0) ist ON Issues.IssueStatusID = ist.IssueStatusID
INNER JOIN (SELECT * FROM IssueStatuses WHERE IsSubStatus = 1) iss ON Issues.IssueSubStatusID = iss.IssueStatusID
WHERE c.Customer = 'ABC'
AND l.Location = 'MySite'
GROUP BY iss.IssueStatus
しかし、それをLINQに変換するのに問題があります。望ましい出力は次のようになります。
問題ステータス | 合計 ------------------- オープン15 遅延 25 オンタイム 8
これが私がLINQで試したことです:
var query = from i in Issues
join r in Rooms on i.RoomID equals r.RoomID
join l in Locations on r.RoomID equals l.LocationID
join c in Customers on l.CustomerID equals c.CustomerID
where i.IssueStatusID == (from ist in IssueStatuses
where ist.IsSubStatus == false
select ist)
&& i.IssueSubStatusID == (from iss in IssueStatuses
where iss.IsSubStatus == true
select iss)
&& c.Custome == "ABC"
&& l.Location == "MySite"
group i by i.IssueStatus
LINQPad
しかし、次のエラーがスローされるため、それが間違っていることはわかっています。
can't convert int to type Models.IssueStatus
私がする必要があるのはiss.IssueStaus
、グループ化に使用することですが、アクセスできません。誰かが私が間違っていることを教えてもらえますか?