【发布时间】:2021-11-26 00:49:24
【问题描述】:
我正在尝试使用 C# .NET 进行登录 AUTH,但出现此错误并且无法解决。
这是我的代码。
User类
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int UserId { get; set; }
public string Name { get; set; }
public string Email { get; set; }
public string Password { get; set; }
注册DTO
public string Name { get; set; }
public string Email { get; set; }
public string Password { get; set; }
IUserRepository
public class UserRepository : IUserRepository
{
private readonly ApiDbContext _context;
public UserRepository(ApiDbContext context)
{
_context = context;
}
public User Create(User user)
{
_context.Users.Add(user);
user.UserId =_context.SaveChanges();
return user;
}
}
我遇到的错误是当我启动 Swagger 并尝试发布用户名电子邮件和密码时:
SqlException:当 IDENTITY_INSERT 设置为 OFF 时,无法在表“用户”中插入标识列的显式值。
【问题讨论】:
-
出于好奇,用户实体的上下文中的配置是什么样的? (发布设置用户实体的 onmodelcreating 部分,如果存在)
-
此外,从 SaveChanges 返回的 int 不是任何类型的 id - 它是已保存的实体数。 db生成的值会自动放到你的用户ID中;你不需要设置它。作为一个轻微的术语修正,swagger 是一种规范;你不能“启动它”。您可能指的是 swaggerUI;一个网页,根据您的项目导出的 swagger/open api 规范生成一堆示例操作和试用
-
另外,显示调用 CreateUser 的代码
标签: c# sql-server asp.net-mvc