Получение ошибки ограничения иностранного ключа при попытке обновить базу данных в ядро ​​EFC#

Место общения программистов C#
Ответить
Anonymous
 Получение ошибки ограничения иностранного ключа при попытке обновить базу данных в ядро ​​EF

Сообщение Anonymous »

У меня есть следующие объекты < /p>
Фильм: < /p>
using System.ComponentModel.DataAnnotations.Schema;

namespace MyWebAPIApplication.Entities
{
public class Film : Base
{
string Title { get; set; }
public int ReleaseYear { get; set; }
public string Synopsis { get; set; }
public int DurationMinutes { get; set; }
public int CountryId { get; set; }

[ForeignKey("CountryId")]
public Country CountryProduced { get; set; }
public int ProducerId { get; set; }

[ForeignKey("ProducerId")]
public Person Producer { get; set; }

public int DirectorId { get; set; }

[ForeignKey("DirectorId")]
public Person Director { get; set; }
public int ScreenwriterId { get; set; }

[ForeignKey("ScreenwriterId")]
public Person Screenwriter { get; set; }
public int ComposerId { get; set; }

[ForeignKey("ComposerId")]
public Person Composer { get; set; }
public ICollection
Actors { get; set; }
public ICollection Trivias { get; set; }
public ICollection FilmConnections { get; set; }
public Review Review { get; set; }
}
}
< /code>
человек < /p>
namespace MyWebAPIApplication.Entities
{
public class Person : Base
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string Email { get; set; }
public string PhoneNumber { get; set; }
public DateTime? DateOfBirth { get; set; }
public int? FilmId { get; set; }
public Film Film { get; set; }
public int? CountryId { get; set; }
public Country CountryBorn { get; set; }
public ICollection Trivias { get; set; }
}
}
< /code>
Вот мой фильмpublic class FilmDBContext : DbContext
{
public FilmDBContext(DbContextOptions options)
: base(options)
{
}

public DbSet Films { get; set; }
public DbSet People { get; set; }

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);

modelBuilder.Entity()
.HasOne(f => f.Composer)
.WithMany()
.HasForeignKey(f => f.ComposerId)
.OnDelete(DeleteBehavior.Restrict);

modelBuilder.Entity()
.HasOne(f => f.Producer)
.WithMany()
.HasForeignKey(f => f.ProducerId)
.OnDelete(DeleteBehavior.Restrict);

modelBuilder.Entity()
.HasOne(f => f.Director)
.WithMany()
.HasForeignKey(f => f.DirectorId)
.OnDelete(DeleteBehavior.Restrict);

modelBuilder.Entity()
.HasOne(f => f.Screenwriter)
.WithMany()
.HasForeignKey(f => f.ScreenwriterId)
.OnDelete(DeleteBehavior.Restrict);

}
}
< /code>
Когда я запускаю обновление-датабазы, я всегда получаю эту ошибку < /p>

Внедрение ограничения иностранного ключа Укажите на
delete no active или при обновлении без действий, или измените другие ограничения
. Не мог создать ограничение или индекс. См. Предыдущий
errors.
< /blockquote>
, несмотря на то, что у меня есть соответствующий код в событии OnModelCreating, я все еще получаю эту ошибку. Есть идеи, как я мог бы это исправить?
Большое спасибо заранее

Подробнее здесь: https://stackoverflow.com/questions/797 ... -in-the-ef
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»