Я создаю проект ASP.NET Core MVC с учетными записями удостоверений, и когда я нажимаю кнопку регистрации (на странице регистрации).
Я получил следующее исключение:
Во время обработки запроса произошло необработанное исключение.
SqlException: невозможно вставить значение NULL в столбец «FirstName» таблицы. 'VolunteerCenterDB.dbo.AspNetUsers'; столбец не допускает нулевых значений. Ошибка INSERT.
Выполнение оператора прекращено.
Microsoft.Data.SqlClient.SqlCommand+c.b__189_0(Task результат)
Меня смущает, если проблема в модели моих пользователей или в Program.cs.
Я подумал, что мне следует сделать firstName и LastName обнуляемыми, но я не думаю, что это имеет смысл. Поскольку у меня есть другие варианты, я не знаю, что еще я могу сделать?
User.cs:
public class User : IdentityUser
{
public User()
{
this.Id = Guid.NewGuid().ToString();
}
public string FirstName { get; set; }
public string LastName { get; set; }
public virtual ICollection VolunteerSignups { get; set; }
public virtual ICollection Events { get; set; }
public virtual ICollection StatusHistories { get; set; }
}
Program.cs:
using Microsoft.AspNetCore.Identity;
using Microsoft.EntityFrameworkCore;
using VolunteerCenterMVCProject.Data;
using VolunteerCenterMVCProject.Models;
using VolunteerCenterMVCProject.Services.Interfaces;
using VolunteerCenterMVCProject.Services;
var builder = WebApplication.CreateBuilder(args);
var connectionString = builder.Configuration.GetConnectionString("DefaultConnection");
builder.Services.AddDbContext(options =>
options.UseSqlServer(connectionString));
// Identity configuration
/*builder.Services.AddDefaultIdentity(options => options.SignIn.RequireConfirmedAccount = true)
.AddRoles()
.AddEntityFrameworkStores();
*/
builder.Services.AddDefaultIdentity()
.AddRoles()
.AddEntityFrameworkStores();
// Add MVC and Razor Pages
builder.Services.AddControllersWithViews();
builder.Services.AddRazorPages();
// Register services
builder.Services.AddTransient();
var app = builder.Build();
// Seed data on application startup
if (app.Environment.IsDevelopment())
{
using (var serviceScope = app.Services.CreateScope())
{
var dbContext = serviceScope.ServiceProvider.GetRequiredService();
dbContext.Database.Migrate();
}
app.UseDeveloperExceptionPage();
app.UseMigrationsEndPoint();
}
else
{
app.UseExceptionHandler("/Error");
app.UseHsts();
}
// Configure middleware pipeline
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
// Map routes
app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
app.MapRazorPages();
app.Run();
Не уверен, но я поделюсь своим DbContext:
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Identity.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore;
using VolunteerCenterMVCProject.Models;
namespace VolunteerCenterMVCProject.Data
{
public class ApplicationDbContext : IdentityDbContext
{
public ApplicationDbContext(DbContextOptions options)
: base(options)
{
}
public DbSet Locations { get; set; }
public DbSet Categories { get; set; }
public DbSet Signups { get; set; }
public DbSet statusHistories { get; set; }
public DbSet Events { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
#region Categories
modelBuilder.Entity()
.HasKey(x => x.CategoryId);
#endregion
#region Locations
modelBuilder.Entity()
.HasKey(c => c.LocationId);
#endregion
#region VolunteerSingups
modelBuilder.Entity()
.HasKey(c => c.SignupId);
modelBuilder.Entity()
.HasOne(x => x.User)
.WithMany(u => u.VolunteerSignups)
.HasForeignKey(x => x.VolunteerId)
.OnDelete(DeleteBehavior.Restrict);
modelBuilder.Entity()
.HasOne(x => x.Event)
.WithMany(e => e.VolunteerSignups)
.HasForeignKey(x => x.EventId)
.OnDelete(DeleteBehavior.Restrict);
#endregion
#region StatusHistory
modelBuilder.Entity()
.HasKey(c => c.StatusHistoryId);
modelBuilder.Entity()
.HasOne(x => x.Event)
.WithMany(x => x.StatusHistories)
.HasForeignKey(x => x.EventId)
.OnDelete(DeleteBehavior.Restrict);
modelBuilder.Entity()
.HasOne(x => x.User)
.WithMany(x => x.StatusHistories)
.HasForeignKey(x => x.ChangedBy)
.OnDelete(DeleteBehavior.Restrict);
#endregion
#region Events
modelBuilder.Entity()
.HasKey(c => c.EventId);
modelBuilder.Entity()
.HasOne(x => x.Category)
.WithMany(x => x.Events)
.HasForeignKey(x => x.CategoryId)
.OnDelete(DeleteBehavior.Restrict);
modelBuilder.Entity()
.HasOne(x => x.Location)
.WithMany(x => x.Events)
.HasForeignKey(x => x.LocationId)
.OnDelete(DeleteBehavior.Restrict);
modelBuilder.Entity()
.HasOne(x => x.User)
.WithMany(u => u.Events)
.HasForeignKey(x => x.CreatedBy)
.OnDelete(DeleteBehavior.Restrict);
#endregion
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
base.OnConfiguring(optionsBuilder);
optionsBuilder.UseLazyLoadingProxies();
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/793 ... vc-project
Как исправить ошибку при регистрации пользователя в моем проекте ASP.NET Core MVC ⇐ C#
Место общения программистов C#
1735195297
Anonymous
Я создаю проект ASP.NET Core MVC с учетными записями удостоверений, и когда я нажимаю кнопку регистрации (на странице регистрации).
Я получил следующее исключение:
Во время обработки запроса произошло необработанное исключение.
SqlException: невозможно вставить значение NULL в столбец «FirstName» таблицы. 'VolunteerCenterDB.dbo.AspNetUsers'; столбец не допускает нулевых значений. Ошибка INSERT.
Выполнение оператора прекращено.
Microsoft.Data.SqlClient.SqlCommand+c.b__189_0(Task результат)
Меня смущает, если проблема в модели моих пользователей или в Program.cs.
Я подумал, что мне следует сделать firstName и LastName обнуляемыми, но я не думаю, что это имеет смысл. Поскольку у меня есть другие варианты, я не знаю, что еще я могу сделать?
User.cs:
public class User : IdentityUser
{
public User()
{
this.Id = Guid.NewGuid().ToString();
}
public string FirstName { get; set; }
public string LastName { get; set; }
public virtual ICollection VolunteerSignups { get; set; }
public virtual ICollection Events { get; set; }
public virtual ICollection StatusHistories { get; set; }
}
Program.cs:
using Microsoft.AspNetCore.Identity;
using Microsoft.EntityFrameworkCore;
using VolunteerCenterMVCProject.Data;
using VolunteerCenterMVCProject.Models;
using VolunteerCenterMVCProject.Services.Interfaces;
using VolunteerCenterMVCProject.Services;
var builder = WebApplication.CreateBuilder(args);
var connectionString = builder.Configuration.GetConnectionString("DefaultConnection");
builder.Services.AddDbContext(options =>
options.UseSqlServer(connectionString));
// Identity configuration
/*builder.Services.AddDefaultIdentity(options => options.SignIn.RequireConfirmedAccount = true)
.AddRoles()
.AddEntityFrameworkStores();
*/
builder.Services.AddDefaultIdentity()
.AddRoles()
.AddEntityFrameworkStores();
// Add MVC and Razor Pages
builder.Services.AddControllersWithViews();
builder.Services.AddRazorPages();
// Register services
builder.Services.AddTransient();
var app = builder.Build();
// Seed data on application startup
if (app.Environment.IsDevelopment())
{
using (var serviceScope = app.Services.CreateScope())
{
var dbContext = serviceScope.ServiceProvider.GetRequiredService();
dbContext.Database.Migrate();
}
app.UseDeveloperExceptionPage();
app.UseMigrationsEndPoint();
}
else
{
app.UseExceptionHandler("/Error");
app.UseHsts();
}
// Configure middleware pipeline
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
// Map routes
app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
app.MapRazorPages();
app.Run();
Не уверен, но я поделюсь своим DbContext:
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Identity.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore;
using VolunteerCenterMVCProject.Models;
namespace VolunteerCenterMVCProject.Data
{
public class ApplicationDbContext : IdentityDbContext
{
public ApplicationDbContext(DbContextOptions options)
: base(options)
{
}
public DbSet Locations { get; set; }
public DbSet Categories { get; set; }
public DbSet Signups { get; set; }
public DbSet statusHistories { get; set; }
public DbSet Events { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
#region Categories
modelBuilder.Entity()
.HasKey(x => x.CategoryId);
#endregion
#region Locations
modelBuilder.Entity()
.HasKey(c => c.LocationId);
#endregion
#region VolunteerSingups
modelBuilder.Entity()
.HasKey(c => c.SignupId);
modelBuilder.Entity()
.HasOne(x => x.User)
.WithMany(u => u.VolunteerSignups)
.HasForeignKey(x => x.VolunteerId)
.OnDelete(DeleteBehavior.Restrict);
modelBuilder.Entity()
.HasOne(x => x.Event)
.WithMany(e => e.VolunteerSignups)
.HasForeignKey(x => x.EventId)
.OnDelete(DeleteBehavior.Restrict);
#endregion
#region StatusHistory
modelBuilder.Entity()
.HasKey(c => c.StatusHistoryId);
modelBuilder.Entity()
.HasOne(x => x.Event)
.WithMany(x => x.StatusHistories)
.HasForeignKey(x => x.EventId)
.OnDelete(DeleteBehavior.Restrict);
modelBuilder.Entity()
.HasOne(x => x.User)
.WithMany(x => x.StatusHistories)
.HasForeignKey(x => x.ChangedBy)
.OnDelete(DeleteBehavior.Restrict);
#endregion
#region Events
modelBuilder.Entity()
.HasKey(c => c.EventId);
modelBuilder.Entity()
.HasOne(x => x.Category)
.WithMany(x => x.Events)
.HasForeignKey(x => x.CategoryId)
.OnDelete(DeleteBehavior.Restrict);
modelBuilder.Entity()
.HasOne(x => x.Location)
.WithMany(x => x.Events)
.HasForeignKey(x => x.LocationId)
.OnDelete(DeleteBehavior.Restrict);
modelBuilder.Entity()
.HasOne(x => x.User)
.WithMany(u => u.Events)
.HasForeignKey(x => x.CreatedBy)
.OnDelete(DeleteBehavior.Restrict);
#endregion
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
base.OnConfiguring(optionsBuilder);
optionsBuilder.UseLazyLoadingProxies();
}
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79308079/how-to-fix-bug-to-register-user-in-my-asp-net-core-mvc-project[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия