Linq查询不匹配的项目

本文关键字:项目 不匹配 查询 Linq | 更新日期: 2023-09-27 17:59:40

我有一个应用程序,它上载了许多文件。我正在尝试快速查找未与任何记录关联的孤立文件以进行删除,以释放磁盘空间。

我创造了这种方法,但它让我(可怜的)林克窒息了。

有人看到我做错了什么吗??

public static IQueryable GetOrphanedFiles(int skip = 0, int take = 100)
{
    using (var ctx = new CS3Entities())
    {
        var files = (from f in ctx.Files
                     select new
                                {
                                    FileID = f.ID
                                });

        var links = (from l in ctx.FileLinks
                     group l by l.FileID
                     into g
                     select new
                                {
                                    FileID = g.Key
                                });
        var orhpans = links.Where(f => files.Contains(f.FileID)); <-- dies here
        return orhpans.Skip(skip).Take(take);
    }
}

Linq查询不匹配的项目

更改如下:

var orhpans = links.Where(f => files.Select(x => x.FileID).Contains(f.FileID));