2015-01-29 3 views
1

ОК ... У меня есть раскрывающийся список, который работает, но я привык его оживлять, добавляя больше проверок .... в формате asp мне удалось проверить ограничение по дате, но мне нужно рассчитывать с другого результаты таблицы, но в ASP не уверены, как подсчитать .... Hes ASP Version I сделал, что работает, я сделал SQL On, чтобы получить идеюПреобразование SQL в LINQ?

Вот только версия LINQ только не работает. получить количество билетов уже назначены расписание

var query = from table in db.Timetables 
         join tick in db.Tickets on table.ID equals tick.TimetableID 
         where table.Schedual_Date > DateTime.Today 
         && table.Advance_Tickets > "NEEDS TO GET NUMBER OF TICKETS ASSIGNED TO TIMETABLE" 
         select table; 

SQL версия

SELECT 
COUNT(Tickets.TimetableID) AS NoTickets, * FROM Tickets 
JOIN Timetable ON Tickets.TimetableID=Timetable.ID 
Where timetable.Schedual_Date > (TODAYS DATE) 
&& Timetable.Advance_Tickets > NoTickets 

ответ

0

Если вы ищете LINQ эквивалент SQL запроса, как показано ниже

SELECT * FROM 
Timetable Timetable 
Where timetable.Schedual_Date > getDate() 
AND Timetable.Advance_Tickets >= (SELECT COUNT(1) FROM Tickets Tickets WHERE Tickets.TimetableID=Timetable.ID) 

вы можете попробовать

var query = from table in timeTables       
       where table.SchedualDate > DateTime.Today 
       && table.AdvanceTickets > (tickets.Count(a => a.TimeTableId == table.Id)) 
       select table; 
0

Используйте функцию .Count(), чтобы получить счет. В вашем случае вам поможет tick.Count(). например,

var query = from table in db.Timetables 
        join tick in db.Tickets on table.ID equals tick.TimetableID 
        where table.Schedual_Date > DateTime.Today 
        && table.Advance_Tickets > tick.Count() 
        select table; 
Смежные вопросы