作为查询的结果,我希望让所有不在列表中的董事在List
中与董事一起发送。但我不知道如何解决这个问题。我已经尝试使用Contains
和其他一些东西。
根本不知道怎么做。
public List<MovieDirector> GetDirectorsPossibleForMovie(int MovieID, List<Director> director)
{
List<MovieDirector> directors =
(from item in db.MovieDirectors where item.MovieId != MovieID && item.Director != director orderby item.Director.Lastname select item).ToList<MovieDirector>();
return directors;
}
其他信息:数据库MovieDirector
和Movie
已关联,但也MovieDirector
和Director
。
谢谢!
答案 0 :(得分:1)
试试这个:
public List<MovieDirector> GetDirectorsPossibleForMovie(
int MovieID, List<Director> director)
{
var mds = db.MovieDirectors.Where(x => x.MovieId != MovieID).ToList();
mds = mds.Where(x => !director.Contains(x.Director)).ToList();
return mds;
}
答案 1 :(得分:1)
假设你有一个主键DirectorId
来区分一个导演与另一个导演,你应该可以做这样的事情来产生一个SQL查询,它将首先排除指定的导演:
var directorIds = director.Select(d => d.DirectorId);
var mds = db.MovieDirectors.Where(x => x.MovieId != MovieID &&
!directorIds.Contains(x.DirectorId))
.ToList();
return mds;