C# Net内核:多对多关系获取操作
我有两个实体通过多对多关系连接 头等舱:C# Net内核:多对多关系获取操作,c#,.net,core,C#,.net,Core,我有两个实体通过多对多关系连接 头等舱: public class Movie { public int Id { get; set; } public string Title { get; set; } public List<MovieActor> MovieActor { get; set; } } 我想编写IEnumerable GetMovies(int-actorId)方法,该方法将演员的id作为参数。我希望这个方法返回一个电影列
public class Movie
{
public int Id { get; set; }
public string Title { get; set; }
public List<MovieActor> MovieActor { get; set; }
}
我想编写
IEnumerable GetMovies(int-actorId)
方法,该方法将演员的id作为参数。我希望这个方法返回一个电影列表,其中一个具有给定Id的演员在其中扮演角色。我该怎么做呢?您不需要电影演员课程
改为:
public class Movie
{
public int Id { get; set; }
public string Title { get; set; }
public List<Actor> Actors { get; set; }
}
public class Actor
{
public int Id { get; set; }
public string Name { get; set; }
public List<Movie> Movies { get; set; }
}
公共类电影
{
公共int Id{get;set;}
公共字符串标题{get;set;}
公共列表参与者{get;set;}
}
公共级演员
{
公共int Id{get;set;}
公共字符串名称{get;set;}
公共列表电影{get;set;}
}
然后,您可以选择演员,并将电影列表作为演员的属性。因此您可以执行类似操作
public IEnumerable<Movie> GetMovies(int actorId)
{
var result = await _context.Actor.Where(x => x.Id == actorId).
Include(x => x.MovieActor).ThenInclude(x => x.Movie).FirstOrDefaultAsync();
var movies = result.MovieActor.select(x => x.Movie).Tolist();
return movies
}
public IEnumerable GetMovies(int-actorId)
{
var result=await_context.Actor.Where(x=>x.Id==actorId)。
Include(x=>x.MovieActor)。然后Include(x=>x.Movie)。FirstOrDefaultAsync();
var movies=result.MovieActor.select(x=>x.Movie.Tolist();
回归电影
}
在我面临的问题中,我无法更改实体的结构。我在这里给出的只是我所面临问题的一个简单例子。演员和电影表更广泛,关系表也有几个附加字段。
public class Movie
{
public int Id { get; set; }
public string Title { get; set; }
public List<Actor> Actors { get; set; }
}
public class Actor
{
public int Id { get; set; }
public string Name { get; set; }
public List<Movie> Movies { get; set; }
}
public IEnumerable<Movie> GetMovies(int actorId)
{
var result = await _context.Actor.Where(x => x.Id == actorId).
Include(x => x.MovieActor).ThenInclude(x => x.Movie).FirstOrDefaultAsync();
var movies = result.MovieActor.select(x => x.Movie).Tolist();
return movies
}