1
所以我再次卡住...LINQ加入/分組問題
我有三個表,我試圖加入並與linq組;公司,通知和請求。
一家公司可能有很多通知。
的通知具有SubcategoryId和CompanyId
請求具有SubcategoryId。
我來這裏的目的是讓公司的名單,併爲每個公司得到他們注意到的子類別列表併爲每個發現子類別是子類別內的請求
例: X公司是監測子類別4和7. 向他展示我們在這些子類別中獲得的要求。
這就是我爲什麼只爲一家公司做的。但是當我需要多家公司的名單時,我無法解決分組和加入。
Company company = db.Companies.Where(x=>x.UserId == 10).FirstOrDefault();
var requestByNotices =
from notice in company.Notices
join request in db.Requests.Where(z => z.IsApproved &
z.Status.Status == "Active") on notice.SubcategoryId equals
request.Subcategoryid
UPDATE
讓我重新整理我的問題。
此查詢產生表我要尋找的結果:
SELECT Companies.CompanyId, Companies.Name, Account.Email, Notices.SubcategoryId, Requests.FriendlyName FROM Companies
INNER JOIN Notices ON Companies.CompanyId = Notices.CompanyId
INNER JOIN Account ON Account.UserId = Companies.Uid
INNER JOIN Requests ON Notices.SubcategoryId = Requests.Subcategoryid
WHERE Requests.StartDate > '2013-12-22';
但是,而不是產生一個平坦的列表,我想通過CompanyId轉化爲對LINQ也是這個組。所以每個公司只有一行代表,在該公司內我可以得到這些請求。
因此,而不是像這樣的列表:
CompanyId Name Email SubcategoryId FriendlyName
1 Test [email protected] 2 x
1 Test [email protected] 4 y
我想有這樣的:
CompanyId Name Email GroupOfRequests
1 Test [email protected] contains two
感謝任何幫助!
嗯,我想在此建但它不起作用。 gg.Any()會產生一個錯誤,如果我刪除它,我會得到每個公司的一行和notice-subcategory。 – Josef
我已經更新了我的問題並提供了一些解釋 – Josef
@Josef我正在更新我的答案,試試看 – Grundy