我有一个
Movie
类,其中包含 Actors
和 Directors
列表。
每当我创建一个使用这些的 Movie
(使用 Rest API)时,一切都很好。
但是当我使用已经存在的
Actor
/ Director
创建第二个时,我的第一个 Movie
失去了对所述 Actor
/Director
的引用。
我该如何解决这个问题,以免出现这种情况?我应该创建一个引用
Movies
和 Actors
/Directors
的新类吗?我该怎么办?
这是我的课程,以防万一有什么东西引起注意。
public class Movie
{
public int Id { get; set; }
public required string Title { get; set; }
public required List<Actor> Actors { get; set; }
public required List<Director> Directors { get; set; }
}
我正在使用实体框架的 InMemory 数据库系统。
其他一切似乎都工作正常。
Movie
引用了Actors
和Directors
,但不是相反,我想避免这种情况。
您确实应该提供
Actor
和 Director
的模型,但是根据行为,我假设您设置了从 Actor
|Director
到 Movie
的 1:N 关系,因此每个 Actor
和 Director
只能与单个 Movie
关联。该关系应该设置为多对多,因为一部电影可以有多个演员/导演,而演员/导演可以有多部电影,因此 Actor
|Director
也应该具有 List<Movie> Movies
属性而不是 Movie Movie
应适当设置属性和/或流畅配置:
builder.Entity<Movie>
.HasMany( m => m.Actors )
.WithMany( a => a.Movies );
// or, if no corresponding navigation properties on Movies
// .WithMany();
https://learn.microsoft.com/en-us/ef/core/modeling/relationships/many-to-many