2017-06-21 9 views
1

私のSQLデータベースには、次の(単純化した)構造があります。 enter image description hereSQL/Linqクエリは多くから多く選択してください

ここで、ユーザーがまだ属していないすべてのグループを選択したいと思います。 クエリがLinq/Entity Frameworkを使用して書かれているが、私はSQL文でも作業できます。

私は(EFを使用して)含める使用してみました:

.Where(g => g.Group_User.UserId != userId) 

それがやっての正しい方法を動作しない、おそらく完全ではありませんでした:クエリでと使用するよりも

.Include(g => g.Group_User) 

これらの種類のクエリです。私は、ユーザーがまだの一部ではないすべてのグループを選択したいと思います

答えて

2

を読み取るための

感謝。このUserId

だから、あなたは、グループのユーザーせずにすべてのグループをしたいので、!Any==を使用します。

var q = db.Group.Include(g => g.Group_User) 
    .Where(g => !g.Group_User.Any(gu => gu.UserId == userId)); 
+0

はい、これは働いていた、ReSharperのは、この変更をsugestingさ: 'g.Group_AspNetUsers.All(GU => gu.AspNetUsersid!= userId'は2つの大きな違いがありますか? – lordvlad30

+0

@ lordvlad30:いいえ、resharperは常に '!'を避けようとしています。私はあなたの要件の翻訳であるので、 '!Any'を好むでしょう –

+0

速い答えと助けてくれてありがとう! (upvoteに十分な評判はないが、それに値する) – lordvlad30

関連する問題