我有一个名为的文件列表并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 - 好吧检查我的更新,它会工作。已经更新了小提琴。 –