多对多关系查询EF Core

时间:2018-08-12 12:47:58

标签: asp.net entity-framework asp.net-core asp.net-core-webapi ef-core-2.1

我正在使用ASP.NET Core 2.1 API应用程序和EF Core 2.1

我与电影和演员之间存在多对多关系,生成的列MovieActors具有电影ID和演员ID。

我需要返回一个电影列表,该电影不返回所有属性,而仅返回posterUrl和release。它还必须返回一个列表,其中包含每个电影对应的演员ID。

我有这样的东西

        var movies = _context.Movies  
            // Actors
            .Include(ma => ma.Actors)
            .ThenInclude(a => a.ActorId)    
            .AsNoTracking()
            .AsQueryable();

这行不通,因为它说ActorId不是导航属性。

我如何仅包括演员ID(而不是整个演员),并且仅选择posterUrl并从电影中放行。

1 个答案:

答案 0 :(得分:1)

var movies = _context.Movies
            .Select(m => new {m.MovieName, 
                 m.MovieYear, 
                 ..., 
                 Actors = m.MovieActors.Select(ma => ma.ActorId)})   
            .AsNoTracking()
            .AsQueryable();