アップロードされたファイルが多数あるアプリケーションがあります。ディスク領域を解放するために、削除するレコードに関連付けられていない孤立したファイルをすばやく見つけようとしています。
このメソッドを作成しましたが、(貧弱な) linq で窒息しています。
誰かが私が間違ったことを見ることができますか??
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);
}
}