请不要给我一个完整的工作示例,我想知道这是怎么做的,而不是得到一些我可以复制粘贴的代码
这是我需要的查询,并且不能为我的生活在LINQ中创建它。
SELECT * FROM
dbo.Schedules s, dbo.Videos v
WHERE s.VideoID = v.ID
AND s.ID IN
(
SELECT MAX(ID) FROM dbo.Schedules
WHERE ChannelID = 1
GROUP BY VideoID
)
ORDER BY v.Rating DESC, s.StartTime DESC
我在LINQ中有“IN”查询,我想,就像这样
var uniqueList = from schedule in db.Schedules
where schedule.ChannelID == channelID
group schedule by schedule.VideoID into s
select new
{
id = s.Max(i => i.ID)
};
这可能是错的,但现在我无法在where子句uniqueList.Contains(schedule.ID)
如果您有任何想法我会喜欢一些提示,可能有更好的方法来编写此查询。
我收到了这个错误,并没有多大意义。
无法从用法中推断出方法'System.Linq.Queryable.Contains(System.Linq.IQueryable,TSource)'的类型参数。尝试明确指定类型参数。
答案 0 :(得分:2)
尝试.Where(sInner => s.ID == sInner.ID).Any()。
我只能在带有简单列表的linq表达式中使用.Contains。虽然你发布的内容似乎是一个编译时错误,但是一旦你解决它,我认为你最终会得到像我过去那样的运行时错误。