我有一個名爲的文件列表並ExtensionsCategory 2表:轉換TSQL到LINQ到實體
FileList
-------------------------------------------------------------
ID Path Extension
1 C:\7.pdf pdf
2 D:\3.png png
3 C:\1.mp3 mp3
4 D:\32.pdf pdf
和
ExtensionsCategory
------------------------------------------------------------
ID Extension Category
1 mp3 Multimedia
2 pdf Document
3 png Photo
沒有表之間的任何關係。
現在我想知道每個類別包含多少個文件? 我寫在SSMS以下TSQL查詢和精細工作:
SELECT
Category
,SUM(FileCount) AS TotalFileCount
FROM
(SELECT
COUNT(*) AS FileCount
,(SELECT ExtensionsCategories.Category FROM ExtensionsCategories WHERE FileList.Extension = ExtensionsCategories.Extension) AS Category
FROM FileList GROUP BY Extension) AS T1 GROUP BY Category
我想知道有沒有什麼改進的方式來做到這一點沒有加入?
我嘗試使用LINQ到實體寫吧,這是我的代碼,但我無法完成它:
var a = _dbContext.FileLists
.Select(fl => new
{
Extension = fl.Extension,
Count = _dbContext.FileLists.Count(),
Cat =
_dbContext.ExtensionsCategories.Where(w => w.Extension == fl.Extension).Select(s => s.Category)
}).GroupBy(g => g.Extension);
@MojtabaTajik - 哪些數據? –
對不起,我忘了廣告鏈接:https://dotnetfiddle.net/FJCIm9 認爲我們在同一類別中有多個擴展名。 –
@MojtabaTajik - 好吧檢查我的更新,它會工作。已經更新了小提琴。 –