2009-02-14 8 views
1

comment puis-je changer cela en linq en sql?sql rejoindre la requête à la syntaxe linq

select * from ratesSchedule as rs 
    inner join userdetails as ud on rs.sid = ud.sid 
    and rs.tabletype = 'd' 

j'ai obtenu jusqu'ici

var results = from rs in db.ratesSchedule 
       join ud in db.userdetails on rs.sid equals ud.sid 

mais je ne peux pas comprendre comment ajouter le « et rs.tabletype = « d » »

Répondre

5

Si vous souhaitez le faire sans clause where, essayez ceci:

var results = from rs in db.ratesSchedule 
       join ud in db.userdetails on 
        new { rs.sid, rs.tabletype } equals 
        new { ud.sid, tabletype = "d" } 

Personnellement je bâton à SQL dans ce cas, puisque LINQ est encore plus facile à lire non. ;)

+0

c'était exactement ce que j'essayais de faire mais avec 'd' (un type de caractère) et cela ne fonctionnerait pas. suppose que j'aurais dû essayer "d". Merci! – jorsh1

+0

@Andomar: C'est vraiment génial. +1, et ce n'est même pas ma réponse. – casperOne

3

Vous devriez être en mesure de mettre juste dans la partie WHERE de la déclaration, puisque vous ne vous joignez pas à une condition autre qu'une comparaison à un champ constant sur la table:

var results = from rs in db.ratesSchedule 
       join ud in db.userdetails on rs.sid equals ud.sid 
       where rs.tabletype = 'd' 
+0

oui mais je ferai plusieurs jointures de sorte que cette solution ne fonctionnera pas une fois que j'ajouterai cela. désolé, j'aurais dû clarifier – jorsh1