【发布时间】:2016-01-20 05:46:09
【问题描述】:
我有 2 个名为 FileList 和 ExtensionsCategory 的表:
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 to Entities 编写它,这是我的代码,但我无法完成:
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);
【问题讨论】:
标签: c# entity-framework linq tsql linq-to-entities