【发布时间】:2021-07-18 22:51:05
【问题描述】:
我的父母(电影)上有子集合(演员),我如何选择所有有演员 A 和演员 B 甚至演员 C 等的电影......?我可以管理一个简单的查询来查找所有演员 A 电影等……但做 (n) 演员似乎不清楚。我的模型如下:
public class Movie
{
public int MovieID { get; set; }
public string MovieTitle { get; set; }
public ICollection<MovieActor> MovieActors { get; set; }
}
public class MovieActor
{
public int MovieID { get; set; }
public Movie Movie { get; set; }
public int ActorID { get; set; }
public Actor Actor { get; set; }
}
public class Actor
{
public int ActorID { get; set; }
[DisplayName("First Name")]
public string ActorFirstname { get; set; }
[DisplayName("Last Name")]
public string ActorLastname { get; set; }
public ICollection<MovieActor> MovieActors { get; set; }
}
我对该对象的 dbContext 配置如下所示:
public void Configure(EntityTypeBuilder<MovieActor> builder)
{
builder.HasKey(ma => new { ma.MovieID, ma.ActorID });
builder.HasOne(ma => ma.Movie)
.WithMany(m => m.MovieActors)
.HasForeignKey(ma => ma.MovieID);
builder.HasOne(ma => ma.Actor)
.WithMany(a => a.MovieActors)
.HasForeignKey(ma => ma.ActorID);
}
【问题讨论】:
-
使用join查询,你应该加入电影列表和演员列表,然后选择包含特定演员的电影。 docs.microsoft.com/en-us/dotnet/csharp/language-reference/…
标签: ef-core-3.1