SQL 语句转换为 LINQ?

SQL statement converting to LINQ?

好的......所以我有一个可用的下拉列表,但我不想增加更多检查......以asp格式我已经设法检查日期限制但我需要从另一个 table 结果中计算,但在 ASP 中不确定如何计算....他是我制作的 ASP 版本,我已经完成了 SQL 获得灵感

这是 LINQ 版本,唯一不起作用的是获取已分配给时间的票数table

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

使用 .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;

如果您正在寻找 SQL 查询的 LINQ 等价物,如下

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;