0
假设A是包含许多B记录的父表。基本上我需要的LINQ to SQL生成这个查询:Linq to SQL使用IQueryable API进行1对多关系
Select * from A
Join B n on B.Id = A.Id
where A.OtherId in (0,1,2,3)
and B.DateTime >= '2011-02-03 00:30:00.000'
and A.TypeId = 1
order by B.DateTime
的LINQ我是这样的:
List<string> programIds = new List<string>("0", "1", "2", "3");
IQueryable<A> query = db.As;
query = query.Where(a => programIds.Contains(a.ProgramId));
query = query.Where(a => a.B.Any(b => b.DateTime >= ('2011-02-03 00:30:00.000')));
在这最后一条语句的问题开始,生成的查询则是这样的:
?查询
{SELECT *
FROM [dbo].[A] AS [A]
WHERE (EXISTS(
SELECT NULL AS [EMPTY]
FROM [dbo].[B] AS [B]
WHERE ([B].[AirsOnStartDateTime] >= @p0) AND ([B].[Id] = [A].[Id])
)) AND ((CONVERT(BigInt,[A].[OtherId])) IN (@p1, @p2, @p3, @p4))
}
任何想法?