使用 Linq to Entities,我有一个IQueryable<T>
并且想要添加另一个 WHERE 子句,它相当于EXISTS
SQL 中的一个子句。我不需要实际从另一个表中提取任何数据,只需检查是否满足条件即可过滤结果。这是我最近的尝试:
IQueryable<FileEntity> files = repository.Files.Where(...);
// More stuff done to files
files = files.Where(f => repository.FileInfo.Where(i => i.Foo == "bar")
.Select(i => t.FileId)
.Contains(f => f.FileId));
var list = files.ToList(); // ERROR!
我也尝试过类似的东西:
files = files.Where(f => repository.FileInfo.Any(i => i.FileId == f.FileId));
任何情况下的例外都是ol'“无法创建'FileInfo'类型的常量值。在此上下文中仅支持原始类型('例如'Int32、String和Guid')。”
您如何在数据库服务器上实现这种类型的查询?