将模型类型ViewModel添加到DbContext时出错

问题描述 投票:0回答:1

当我想使用 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

我知道,如果我在上下文类之外添加工厂上下文类,问题就解决了,我正在尝试,但它不起作用。

c# asp.net-core connection-string ef-core-7.0
1个回答
0
投票

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)
    {
    }
}

最后这些文档可以帮助您更好地理解身份支架: 在此输入链接描述 在此输入链接描述

© www.soinside.com 2019 - 2024. All rights reserved.