私は画像用のテーブルを持っています.1つはジョブ用、もう1つはUsers用です。ユーザーがジョブを投稿すると、そのユーザーのイメージをテーブルImageから自動的に割り当てたいと思う。会社がロゴ/イメージを更新したいときに、自分のすべてのジョブをテーブルImageとUserIDからの新しいイメージで自動的に更新し、ImageIDを持つ行をから更新しないようにするために、User ImageIDをJobテーブルに保存したくないジョブテーブル。私が試したものをここで他の2つのIDが2つの異なるテーブルで一致する場合はIDを取得
:それは上記のコードでは
var listOfJobs = db.Jobs.AsEnumerable();
var ProfileImage = db.Images.Where(
p => listOfJobs.Any(l => p.UserID == l.ApplicationUsers.Id)).ToList();
return View(ProfileImage);
は、すべてのジョブで画像テーブル内のすべての画像が表示されます。
参加してみる必要がありますか?私はちょっと結合を使う方法を知らないし、この状況に合っていれば私はしない。
は
あなたの 'AsEnumerable'がデータベースの使用を妨げることは知っていますか?クエリはすべてメモリにロードされ、そこでフィルタリングされます。 SQLは生成されませんが、 'SELECT * FROM db.Jobs'が生成されます。それはうまくいくかもしれませんが、効率的ではなく、将来的にテーブルが大きくなると失敗するかもしれません。 –
小規模の修正:遅延ロードがオフの場合のみ。それがオンの場合、db.ImagesはSQLクエリ – Hegi
を大量に生成します@Hegi:興味深い、わからなかった。私は、AsEnumerableが代わりにLinq-To-Objectメソッドを呼び出すと考えました。ですから 'Images'の全ての画像に対して' Enumerable.Any'が呼び出されます。 –