Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

Здесь нужно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 04.10.2019, 16: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! вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


04:36.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.