2009-02-14 2 views
1

как мне изменить это на linq на sql?sql присоединить запрос к синтаксису linq

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

я получил это далеко

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

, но я не могу понять, как добавить «и rs.tabletype =„D“»

ответ

5

Если вы хотите сделать это без ИНЕКЕ, попробуйте следующее:

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

Лично я бы придерживаться SQL в этом случае, так как LINQ даже не легче читать. ;)

+0

Это было именно то, что я пытался сделать, но с 'd' (тип символа), и это не сработало. думаю, я должен был попробовать «d». благодаря! – jorsh1

+0

@Andomar: Это на самом деле отлично. +1, и это даже не мой ответ. – casperOne

3

Вы должны быть в состоянии просто поставить это в части WHERE, поскольку вы не присоединяетесь к условию, отличному от сравнения с постоянным полем таблицы:

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

Да, но я буду делать несколько объединений, поэтому это решение не будет работать, как только я добавлю это. извините, я должен был уточнить – jorsh1

Смежные вопросы