¿Existe un “no igual” en una unión de Linq?
Estoy intentando lograr la consulta LINQ a continuación, pero necesito un “no igual” en lugar de igual, quiero agregar una lista de clubes a los que los miembros no se han unido, en lugar de IDClub igual a i.ID, quiero que IDClub sea “no igual” a i.ID.
int IdTvien = Convert.ToInt32(Session["UserId"]);
List<member> memBer = db.Member.ToList();
List<club> Club = db.Club.ToList();
List<memberclub> memberClub = db.MemberClub.ToList();
var memBRecord = from e in memberClub
join d in memBer on e.IDMember equals IdTvien into table1
from d in table1.ToList()
join i in Club on e.IDClub equals i.ID into table2
from i in table2.ToList()
select new ViewModel
{
MemberClub = e,
Member = d,
Club = i
};
davy.ai
Para lograr la consulta LINQ deseada con “no igual” en lugar de “igual”, puedes modificar la consulta existente de la siguiente manera:
Aquí, hemos agregado una nueva cláusula
where
a la listaclubs
para seleccionar solo los clubes en los que el usuario actual (IdTvien
) no se ha unido. Luego, actualizamos la cláusulajoin
para los clubes (i
en la consulta original) para usar la listaclubs
en su lugar, y reemplazamos el operadorequals
con el métodonot contains
. Finalmente, hemos cambiado los nombres de las variables para mejorar la legibilidad.