データベースからフィルムを削除する際に問題が発生しているようです。FilmId を使用して映画をターゲットにしていますが、削除しようとすると、次のエラー メッセージが表示されます。
DELETE ステートメントが REFERENCE 制約 "FK_dbo.Genres_dbo.Films_Film_FilmId" と競合しました
これは、私の Genre テーブルが FilmId を介して Film テーブルと関係を持っているためだと思います。
これが私のDeleteFilmメソッドです
public ActionResult DeleteFilm(int id)
{
Film film = db.Films.Find(id);
db.Films.Remove(film);
db.SaveChanges();
return RedirectToAction("MyFilms");
}
このメソッドを呼び出すアクションリンクは次のとおりです
@using (Html.BeginForm())
{
@Html.ActionLink("Remove Movie", "DeleteFilm", new { id = Model.FilmId });
}
映画を削除するにはどうすれば関係を削除できますか. どんな助けでも大歓迎です。
これが私の映画クラスです
public class Film
{
[Key]
public int FilmId { get; set; }
public string FilmTitle { get; set; }
public int FilmReleaseYear { get; set; }
public string FilmDirector { get; set; }
public string FilmRating { get; set; }
public string FilmImageUrl { get; set; }
public string FilmImdbUrl { get; set; }
public virtual ICollection<Genre> FilmGenres { get; set; }
public virtual ICollection<FilmCastMember> FilmCastList { get; set; }
public virtual ICollection<FilmReview> FilmReviews { get; set; }
public Film()
{
FilmGenres = new List<Genre>();
FilmCastList = new List<FilmCastMember>();
FilmReviews = new List<FilmReview>();
}
}
ここに私のジャンルタイプがあります
public class Genre
{
[Key]
public int GenreId { get; set; }
public string GenreType { get; set; }
}