将sql转换为linq

jon*_*nny 5 c# sql linq linq-to-sql sql-to-linq-conversion

我正在尝试在我的酒店预订项目上实施按日期筛选.

有人可以帮我把这个sql代码转换成linq.

SELECT r.*
FROM Room r LEFT JOIN Reservation v ON r.RoomID = v.RoomID
AND NOT (@StartDate >= Date_Check_Out OR @EndDate <= Date_Check_In)
AND v.cancel = 0
WHERE v.ReservationID IS NULL
Run Code Online (Sandbox Code Playgroud)

Pra*_*ana 10

将SQL转换为Linq的好工具之一:Linqer

试试这个查询

var q = (from r in Room 
            join v in Reservation on r.RoomID equals v.RoomID  into outer
            from o in outer.DefaultIfEmpty()
            where !(o.Date_Check_Out<= startdate || o.Date_Check_In>=endDate)
                  && v.cancel == 0 && v.ReservationID == null 
            select r);
Run Code Online (Sandbox Code Playgroud)

还要检查一下:

请参见SQL to LINQ Tool 现有线程.

如果您决定手动完成,Linqpad应该是有用的.

您还希望看到:SQL到LINQ(Visual Representation)的图形表示有一些很好的例子......