2

テーブル とにuseridあるユーザーの名前を返すこのクエリがあります。私が欲しいのは、 にないユーザーの名前を返すことです。accessusersuseridaccess

 var query = db.Users
      .Join(db.Access, c => c.UserId, o => o.UserId,
       (c, o) => new { c.UserId, c.Name });

SQLでは、次のようになります。

SELECT  Users.Name
FROM     Access INNER JOIN
               Users ON Access.UserId <> Users.UserId

lambda expressionSQLスクリプトに相当するものは何ですか?

4

3 に答える 3

6

使用するExcept

var res = db.Access.Except(query);
于 2013-03-12T12:50:55.330 に答える
0

! Contains()以下のように使用することもできます。

//Get Access user ids into an array
var AccessUserIds = db.Access.Select(a => new {a.UserId}).ToArray();

//Users who are not in Access user id array
var Results = db.Users.Where(u => !AccessUserIds.Contains(u.UserId));
于 2013-03-12T13:01:28.720 に答える
0
var exclude = db.Access.Select(p => p.UserId);


var us = db.Users.Where(q => !exclude.Contains(q.UserId)).ToList();


ViewBag.UsersId = new SelectList(us, "UserId", "Name");

最後にそれが正しい答えです。唯一の違いは最初の行にあります。

皆さん、ありがとうございました!

于 2013-03-13T08:30:47.917 に答える