求一个linq写法
表逻辑是这样的 Test表引用了TripLine 表的ID,为一对一关系。
而TripLine表和TripLinePlan 是一对多的关系,因为要用到TripLinePlan 表中的列进行条件判断,所以进行3表关联查询。
sql 语句如下:
select a.* from Test a
inner join TripLine b on a.RefID=b.ID
inner join
(
select distinct(a.ID) from TripLine a
left join TripLinePlan b on a.ID=b.TripLineID
where b.OnlineFlag=1 and c.CreateDate <='2013-08-08'
) c on b.ID=c.ID
where b.OnlineFlag = 1
用linq 该怎么写?另外有什么更好的逻辑么?
麻烦各位高手指点下。
LINQ SQL
[解决办法]
本帖最后由 q107770540 于 2013-08-08 08:53:00 编辑
var query=from a in Test
join b in TripLine on a.RefID equals b.ID
join c in TripLinePlan on b.ID equals c.TripLineID into lg
from c in lg.DefaultIfEmpty()
where c.OnlineFlag==1 && c.CreateDate <=Convert.ToDateTime("2013-08-08")
select a;
[解决办法]
如果 LINQ 使问题变得复杂了,就没必要用了,直接用 SQL
[解决办法]
使用工具linqpad先写sql语句查询,然后可以转到linq语法上,祝你好运,可以试试