如果任何匹配任何在列表中使用实体框架
本文关键字:实体 框架 列表 任何匹 任何 如果 | 更新日期: 2023-09-27 18:16:39
我有这段代码:
var files = (from f in _fileRep.GetFiles()
where fileID.Contains(f.FileID)
select f.FileName).ToList();
var destFiles = (from f in _fileRep.GetFiles()
where f.FolderID == destFolderID
select f.FileName).ToList();
bool valid = destFiles.Any(x => files.Contains(x));
fileID是int[],我试图验证是否存在一个文件名列表,其中FolderID匹配destFolderID在数据库中移动文件时。
I'm getting:
"Unable to create a null constant value of type 'System.Int32[]'.
Only entity types, enumeration types or primitive types are
supported in this context."
似乎fileID
是空的。如果它为空,可以使用??
操作符轻松地将其转换为空数组。此外,除非您确实需要通过索引访问项目,否则.ToList
可能是不必要的。
你可以试试:
fileID = fileID ?? new int[0];
var files = _fileRep.GetFiles().Where(f => fileID.Contains(f.FileID));
var destFiles = _fileRep.GetFiles().Where(f => f.FolderID == destFolderID);
bool valid = files.Join(destFiles, f => f.FileName, f => f.FileName).Any();
或者
fileID = fileID ?? new int[0];
bool valid =
(from f in _fileRep.GetFiles()
join g in _fileRep.GetFiles() on f.FileName equals g.FileName
where fileID.Contains(f.FileID) && g.FolderID == destFolderID
select f).Any();