SQL では、次のように実行されます。
SELECT * FROM Student
WHERE SchoolId IN
(SELECT id FROM School WHERE Name LIKE '%elementary%')
これを LINQ で実装するにはどうすればよいですか? 私は次のことを試しました:
var list = context.Students.Where(x => context.Schools.Where(r => r.Name.Contains("elementary").Select(r => r.Id).Contains(x.SchoolId))
残念ながら、それは私が望むものを私に与えていません...
Id
最初にテーブルからすべての sを取得できることはわかっていますSchool
が、パフォーマンスに大きな負担がかかると思います。できれば、LINQ to SQL ですべてを処理したいと思います。動的にする必要があり、現在LINQが最適なソリューションであるため、バニラSQLを使用してこれを行うことはできません。
上記のコードはすべて説明用です。私がやっていることは少し異なります(しかし、多かれ少なかれ同じです)。これについては本当に助けが必要です。さらに情報が必要な場合は、お気軽にお問い合わせください。
編集:私の悪い、私はフィールドを逃した。それは機能しますが、そのフィールドが欠落していたため、結果が表示されませんでした...申し訳ありません...