检查查询是否包含列表中的内容
作为查询的结果,我希望让所有不在列表中的董事通过与董事的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
。
谢谢!
@如果MovieDirector类有它的散列码,等于树立正确的方法Enigmativity的答案可能会奏效,但它会拉扯,几乎所有的MovieDirector对象从数据库中,只有丢弃与列表中的董事有关的人。
假设你有一个主键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;
它看起来像这个工作! –
试试这个:
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;
}
除MoveDirectors以外的董事除外。 –
'除了'是不可能的,因为需要一些
“我想让所有不在列表中的董事”这是Director对象的平等标准。 –
你说你想要导演,但是你的方法会返回MovieDirectors。哪一个? –