Запрос MVC5 для установки IDENTITY_INSERT для столбца без PK и добавления записи - PullRequest
1 голос
/ 21 мая 2019

У меня есть база данных по умолчанию asp.net. Я добавил несколько столбцов / свойств для моего пользователя. Один из моих столбцов использует свойство IDENTITY в моем SQL. Когда я иду, чтобы добавить нового пользователя, я получаю эту ошибку. «Невозможно вставить явное значение для столбца идентификаторов в таблице« AspNetUsers », когда для IDENTITY_INSERT задано значение OFF.» У меня установлены миграции, и если я добавлю засеянного пользователя, я получу ту же ошибку. Если я использую имя таблицы Set IDENTITY ON, я все еще получаю эту ошибку. Как я могу сделать это с настройкой моей сущности на mvc5? С этим кодом я не получаю ошибки, просто не теряю значения, поэтому я предполагаю, что близок к решению этой проблемы.,

            await context.Database.Connection.OpenAsync();

            try
            {                   
                context.Database.ExecuteSqlCommand("SET IDENTITY_INSERT AspNetUsers ON");
                await context.SaveChangesAsync();
                var result = await UserManager.CreateAsync(user, model.Password);
                if (result.Succeeded)
                {
                    context.Database.ExecuteSqlCommand("SET IDENTITY_INSERT [dbo].[AspNetUsers] OFF");
                    // Assign User Roles HERE for correct _layout
                    await UserManager.AddToRoleAsync(user.Id, model.UserRoles);
                    await SignInManager.SignInAsync(user, isPersistent:false, rememberBrowser:false);

                    TempData["Success="] = "User Created Successfully";
                    return RedirectToAction("Index", "Home");
                }
                ViewBag.Roles = new SelectList(context.Roles.Where(r =>
                        !r.Name.Contains("Admin")).ToList(), "Name", "Name");
                AddErrors(result);
            }
            catch(Exception ex)
            {

            }
            finally
            {
                await context.SaveChangesAsync();
                context.Database.Connection.Close();
            }
...