Linq to Entities を使用して、SQLIQueryable<T>
の句に相当する別の WHERE 句を追加したいと考えていEXISTS
ます。他のテーブルから実際にデータを取得する必要はありません。結果をフィルタリングする条件が満たされているかどうかを確認するだけです。これが私の最新の試みです:
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' など) のみがサポートされています。」
データベース サーバーでこの種のクエリを実行するにはどうすればよいでしょうか。