在计算

时间:2015-06-25 10:15:15

标签: c# entity-framework non-static

我的代码:

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)

但是如果电影存在且指定的流派脚本有效。

1 个答案:

答案 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));