запрос linq to entity, который имеет несколько выражений where и один where с условием where in

1

Я пытаюсь построить запрос linq к объектам. Это то, что у меня есть до сих пор:

            from x in db.BusSchedule
            join y in db.BusSchedule on x.ID equals y.ID - 1
            where Convert.ToInt32(y.StopOrder) >= Convert.ToInt32(x.StopOrder) 
            && x.NameOfTown == arrival
            && x.Line in (SELECT Line FROM BusSchedule WHERE NameOfTown = destination) 
            orderby x.DepartureTime ascending
            select x).Distinct()

Я не уверен, как сделать часть IN, и я вставляю фактический SQL-запрос, который я использую. Как я могу перевести этот запрос sql

'SELECT Line FROM BusSchedule WHERE NameOfTown = destination'

в запросе Linq to Entities?

Заранее спасибо, Laziale

  • 0
    как насчет использования метода .Contains() это эквивалентно предложению IN
  • 0
    @DJKRAZE вы можете дать мне образец пожалуйста, спасибо
Показать ещё 1 комментарий
Теги:
linq
linq-to-sql
linq-to-entities

1 ответ

0
Лучший ответ
var dest = (from b in db.BusSchedule
           where b.NameOfTown = destination
           select b.Line).ToList();

var output = (from x in db.BusSchedule.Where(b => b.NameOfTown == arrival)
             join y in db.BusSchedule on x.ID equals y.ID - 1
             where Convert.ToInt32(y.StopOrder) >= Convert.ToInt32(x.StopOrder) 
                   && dest.Contains(x.Line)
             orderby x.DepartureTime ascending
             select x)
             .Distinct()

Ещё вопросы

Сообщество Overcoder
Наверх
Меню