我的代码:
public IQueryable<Model.Movie> SearchMovies(string sgenre,string syear,string stitle)
{
using (var db = new Context())
{
var genre = db.Genre.FirstOrDefault(x => x.Name == sgenre);
var movies = db.Movie.Where(x => x.Genre.Any(y => y.ID == genre.ID));
List<Movie> empty = new List<Movie>();
if (movies.ToList().Count() > 0)
{
return movies.ToList().AsQueryable();
}
else
{
return empty.ToList().AsQueryable();
}
}
}
当电影不存在指定类型时出现错误:
System.Reflection.TargetException:非静态方法需要a 目标
错误行:
if (movies.ToList().Count() > 0)
但是如果电影存在且指定的流派脚本有效。
答案 0 :(得分:0)
此异常表示您在LINQ查询中使用的某些变量为null。
例如:
当x.Gendre为null时,将导致此异常:
var movies = db.Movie.Where(x => x.Genre.Any(y => y.ID == genre.ID));
尝试将其更改为:
db.Movie.Where(x => x.Gendre != null&&x.Genre.Any(y => y.ID == genre.ID));