当我想使用 EF Core Identity 搭建控制器时,我收到了这样的错误
Error
There was an error running the selected code generator: 'Could not add Model type
'Electrical.Models.ViewModels.RegisterViewModel' to
DbContext 'DataAccessLayer.AppDbContext'. Make sure that DataAccessLayer.AppDbContext' has a DbSet property for
"Electrical.Models.ViewModels.RegisterViewModel"."
OK
我知道,如果我在上下文类之外添加工厂上下文类,问题就解决了,我正在尝试,但它不起作用。
RegisterViewModel 是一个视图模型,不直接映射到数据库表。在数据库上下文中,您应该只包含与数据库交互的实体模型,而不是视图模型。视图模型通常用在应用程序的前端与用户交互,并不直接存储在数据库中,因此您应该使用实体模型而不是视图模型。
身份本身没有模型所以我该怎么办?
Identity 是 ASP.NET Core 框架的一部分,用于处理身份验证和授权功能。它集成了许多类:IdentityUser、IdentityRole、IdentityUserRole、IdentityUserToken、IdentityUserLogin、IdentityUserClaim。在这两者之间,IdentityUser 是 ASP.NET Core Identity 框架中定义的类之一,代表应用程序的用户实体。它提供了一组标准的属性来存储基本的用户信息,例如用户名、电子邮件地址、密码哈希等。因此您可以创建一个用户实体类,派生自 IdentityUser:
public class EntityUser : IdentityUser
{
}
创建从 IdentityDbContext 派生的数据库上下文类
public class AppDbContext : IdentityDbContext<EntityUser>
{
public AppDbContext (DbContextOptions<AppDbContext> options)
: base(options)
{
}
}