5

この画像に示すようなテーブル レイアウトがあります。1 つのメイン テーブル ( User )と、ジャンクション テーブルを含む2 つの多対多テーブル ( PreferenceおよびLocation )。これらの m-2-m テーブルから選択できるように、データ モデルに正しい関係を設定しました。

ここに画像の説明を入力

私が書いているレポート ツールを使用すると、ユーザーは (チェックリストから) ユーザーの好みやユーザーの場所を選択できます。私がやりたいのは、 Preferences OR Locationsに少なくとも 1 つの選択肢が含まれているUserテーブルからレコードのみを選択することです。

これは Linq クエリで可能ですか? (以前は SQL でこれを行っていましたが、この部分に到達するまでは Linq で記述した方が簡単に思えました!)

どうもありがとう、

編集: Visual Studio 2012、Entity Framework 4、SQL Server 2008 R2

4

1 に答える 1

3
from u in Users
where u.Locations.Any(l => l.Name == value) ||
      u.Preferences.Any(p => p.Title == value)
select u;

これにより、2 つの EXISTS サブクエリが生成されます。ラムダ構文:

Users.Where(u => u.Locations.Any(l => l.Name == value) ||
                 u.Preferences.Any(p => p.Title == value));
于 2013-11-01T13:31:20.697 に答える