linq 连接中是否存在“不等于”? [重复]

问题描述 投票:0回答:1

我正在尝试完成下面的 LINQ 查询,但我需要一个“不等于”而不是等于,我想添加成员尚未加入的俱乐部列表,而不是 IDClub 等于 i.ID,我想要 IDClub“不等于” i.ID

int IdTvien = Convert.ToInt32(Session["UserId"]);
List<Member> memBer= db.memBer.ToList();
          List<Club> Club = db.Club.ToList();
          List<Member_Club> member_club= db.Member_Club.ToList();
          var memBRecord= from e in member_club
                               join d in memBer on e.IDmemBer equals IdTvien into table1
                               from d in table1.ToList()
                               join i in clb on e.IDClub equals i.ID into table2
                               from i in table2.ToList()
                               select new ViewModel
                               {
                                   Member_Club = e,
                                   Member= d,
                                   Club= i
                               };

c# linq equality
1个回答
0
投票
UserClubs_ clubs = (from a in this.db.Users
                                  join b in this.db.UserClub on a.UserNumber equals b.UserNumber into u_club
                                    where a.UserNumber == 852
                                  select new UserClubs_
                                  {
                                      assigned_clubs = (from r in this.db.ClubList
                                                        where u_club.Select(x => x.ClubId).Contains(r.Id)
                                                        select r).ToList(),
                                      user = a,
                                      not_assigned = (from r in this.db.ClubList
                                                      where !u_club.Select(x => x.ClubId).Contains(r.Id)
                                                      select r).ToList()
                                  }).FirstOrDefault();

不太好,但你可以使用这样的东西

某堂课:

public class UserClubs_
{
    public Users user { get; set; }
    public List<ClubList> assigned_clubs { get; set; }
    public List<ClubList> not_assigned { get; set; }
}

桌子:

CREATE TABLE [dbo].[UserClub] (
[Id]         INT IDENTITY (1, 1) NOT NULL,
[UserNumber] INT NOT NULL,
[ClubId]     INT NOT NULL,
PRIMARY KEY CLUSTERED ([Id] ASC)

);

CREATE TABLE [dbo].[ClubList] (
[Id]   INT           IDENTITY (1, 1) NOT NULL,
[Name] NVARCHAR (50) NOT NULL,
PRIMARY KEY CLUSTERED ([Id] ASC)

);

© www.soinside.com 2019 - 2024. All rights reserved.