У меня есть следующие объекты < /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
Получение ошибки ограничения иностранного ключа при попытке обновить базу данных в ядро EF ⇐ C#
Место общения программистов C#
1759496746
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, я все еще получаю эту ошибку. Есть идеи, как я мог бы это исправить?
Большое спасибо заранее
Подробнее здесь: [url]https://stackoverflow.com/questions/79781770/receiving-foreign-key-constraint-error-when-trying-to-update-database-in-the-ef[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия