Linq 林克交集?

Linq 林克交集?,linq,Linq,我有两张这样的桌子 public class Movie { private int MovieID; private string Title; } public class transactions { private int TransactionID; private int MovieID; } 所以第一个表包含所有电影,第二个表包含租用的电影 我如何选择所有留在商店里的电影(未出租且可用)。试过这样的事情: var moviesavailable

我有两张这样的桌子

public class Movie
{
    private int MovieID;
    private string Title;
}
public class transactions
{
    private int TransactionID;
    private int MovieID;

}
所以第一个表包含所有电影,第二个表包含租用的电影

我如何选择所有留在商店里的电影(未出租且可用)。试过这样的事情:

var moviesavailable =
  (from m in db.Movies 
  select m.MovieID ).Intersect
  (from trans in db.Transactions 
  select trans.MovieID)

但不起作用…

第一种方法是检查所有电影,如果没有使用相同电影ID的交易,则检查每个外观:

db.Movies.Where(m => !db.Transactions.Any(t => t.MovieID == m.MovieID))
第二种方法是使左连接。我们将电影中的所有行和事务中的等效行连接起来。如果电影中某一行的事务中没有行,则该行的事务为null(DefaultIfEmpty):


第一种方法是检查所有电影,如果没有使用同一电影ID的交易,则检查每个外观:

db.Movies.Where(m => !db.Transactions.Any(t => t.MovieID == m.MovieID))
第二种方法是使左连接。我们将电影中的所有行和事务中的等效行连接起来。如果电影中某一行的事务中没有行,则该行的事务为null(DefaultIfEmpty):


通常情况下,除了,您会使用
,但由于对象的类型不同,因此在这种情况下不能使用它。交叉点是你想要的位置。通常你会使用
,除了
,但由于你的对象类型不同,在这种情况下你不能使用它。十字路口就是你想要的地方。哇,这太棒了!!!thnx如果我能理解它就好了,但它的工作很重要:)我有更难看的解决方案哦,理解它是非常重要的。我加了一些词。如果你需要更多,告诉我。哇,这太棒了!!!thnx如果我能理解它就好了,但它的工作很重要:)我有更难看的解决方案哦,理解它是非常重要的。我加了一些词。如果你需要更多,告诉我。