代码将编译甚至运行,但只要我对结果做任何事情,我就会得到InvalidOperationException或NotSupportedException
var movies = from m in data.Movies
where m.Rating > -1 && m.GenresLinks.Contains
(
(from g in data.GenresLinks
where g.GenreID == queryGenre select g).FirstOrDefault()
)
orderby m.InsertedIn descending
select m;
return movies.ToArray();//Exception here
答案 0 :(得分:0)
也许我在这里遗漏了一些东西,但是你要回复评分为&gt的电影; -1和一个queryGenre类型,你为什么不这样做呢?
var movies = from m in data.Movies
where m.Rating > -1 &&
m.GenreLinks.Any(gr => gr.GenreID == queryGenre)
orderby m.InsteredIn desc
select m;
真的需要更多信息来帮助我们
答案 1 :(得分:0)
从抛出错误的地方,您可以确定其原因是使用ToArray()
评估查询。
LINQ to SQL支持嵌套查询,因此我最好的猜测是你正在执行Contains(null)
并且它不会转换为SQL,因此当IQueryProvider
尝试评估时会引发错误表达方式。