Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.10.2019, 15:48   #1
THE DECAL!
Новичок
Джуниор
 
Регистрация: 04.10.2019
Сообщений: 1
Восклицание Как заставить Entity не дублировать мои записи по вторичному ключу

Всем привет.
Не могу добавить запись в таблицу пишет ошибку. Я так понимаю он пытается продублировать запись, как мне избежать дублирование, а просто добавить вторичный ключ на существующего пользователя?

Ошибка:
Код:
Microsoft.EntityFrameworkCore.DbUpdateException: "An error occurred while updating the entries. See the inner exception for details."
 
SqlException: Нарушено "PK_AspNetUsers" ограничения PRIMARY KEY. Не удается вставить повторяющийся ключ в объект "dbo.AspNetUsers". Повторяющееся значение ключа: (2589aad3-387f-487b-9d22-6613ca0c9a01).
Выполнение данной инструкции было прервано.
Модель добавляемого объекта:
Код:
public class Game : DbContext
{
        [Key]
        public int Id { get; set; }
        public string JsonBoard { get; set; } = "";
        [NotMapped]
        public CheckersBoard Board { get; set; } = new CheckersBoard();
 
        public User WhitePlayer { get; set; } = null;
        public User BlackPlayer { get; set; } = null;
 
        public int WhiteScore { get; set; } = 0;
        public int BlackScore { get; set; } = 0;
        public int GameTimeCounter { get; set; } = 0;
        public string JsonGameLog { get; set; } = "";
        [NotMapped]
        public List<string> GameLog { get; set; } = new List<string>();
        public DateTime DateStart { get; private set; } = DateTime.Now;
        public DateTime DateFinish { get; private set; } = DateTime.Now;
 
        public User Winner { get; set; } = null;
        public User UserCurrentMove { get; set; } = null;
}
Код который я выполняю:
Код:
User CurrentUser { get => _userManager.Users.FirstOrDefault(u => u.Email == Context.User.Identity.Name); }
 
                using (var dbContext = new ApplicationDbContext(new Microsoft.EntityFrameworkCore.DbContextOptions<ApplicationDbContext>()))
                {
                    var game = dbContext.Games.FirstOrDefault(g => g.Id == 1);
                    game.WhitePlayer = CurrentUser;
                    dbContext.SaveChanges();
                }
THE DECAL! вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дублировать строку со значениями AlenaBar Microsoft Office Excel 1 07.02.2019 14:53
Как дублировать элементы в строке? lorddrous Microsoft Office Excel 2 09.12.2016 06:23
по клику на ячейку дублировать содержимое johny_03 Microsoft Office Excel 2 20.09.2011 10:34
нахождение записи по ключу состоящему из 3 полей Evgen1503 SQL, базы данных 1 24.04.2011 23:10