@bizir

ENTITY FRAMEWORK Fluent API как запретить создавать запись если она уже есть?

Есть 2 таблицы со связью многие ко многим
public class Movie
    {
        [Key]
        public int MovieId{ get; set; }
        [MaxLength(100)]
        public string Title{ get; set; }
        public List<Country> Countrys{ get; set; }
    }
    public class Country
    {
        [Key]
        public int CountryId { get; set; }
        [MaxLength(10)]
        public string Key { get; set; }
        public List<Movie> Movies { get; set; }
    }

Привязал их друг к другу через Fluent API вот так
modelBuilder.Entity<Cinema_Country>()
                .HasMany(c => c.Movies)
                .WithMany(c => c.Countrys)
                .Map(c =>
                {
                    c.ToTable("Cinema_CountryMovie");
                    c.MapRightKey("MovieId");
                    c.MapLeftKey("CountryId");
                });

Но при добавлении к таблице Movie таблицу Country и сохранении . Создается еще одна запись в Country. Как запретить добавлять записи в эту таблицу если запись уже существует?
  • Вопрос задан
  • 90 просмотров
Решения вопроса 1
sarapinit
@sarapinit Куратор тега C#
Точу водой камень
Это происходит потому что в трекере изменений EF нет информации о Country в момент сохранения.
Вам нужно "присоединить" существующие страны к контексту перед сохранением. Вот пример в официальных доках
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы