如何在 DAL 中为模型创建 DbSet 属性

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

我在尝试使用 Create 模板和使用 DatabaseContext 作为其类的模型添加新的 Razor 视图时遇到问题。我面临的错误如下:

运行所选代码生成器时出错: '无法将模型类型'IXP.Models.UserRegistrationModel'添加到DbContext'DAL.DataContext.DatabaseContext'。确保“DAL.DataContext.DatabaseContext”具有“IXP.Models.UserRegistrationModel”的 DbSet 属性。'

在我的 .net 6 MVC 解决方案中,我添加了两个项目:“DAL”和“Domain”。我的代码优先表位于“Domain”项目中,而这些表的 DbSet 属性在“DAL”项目中定义。

我希望这提供了足够的信息来解决这个问题。

我尝试在 DAL.DataContext.DatabaseContext 中添加 DbSet,但我做不到。 “域”层已正确定义为“模型”所需的属性和属性

c# asp.net-mvc entity-framework .net-6.0 dbcontext
1个回答
0
投票

您的错误消息表明 UserRegistrationModel 未添加到 DatabaseContext 中的 DbSet 中。这通常是添加 DbSet 的方式:

public class DatabaseContext : DbContext
{
    public DatabaseContext(DbContextOptions<DatabaseContext> options)
        : base(options)
    { 
    }
    
    public DbSet<UserRegistrationModel> UserRegistrationModels { get; set; }
}

假设您已经完成上述操作,如果您已将项目分为不同的层(域和 DAL),实体框架工具可能会出现问题,无法检测到 UserRegistrationModel,因为它位于不同的项目中。

您可以检查以下几件事:

  • 确保您的 UserRegistrationModel 在 DatabaseContext 和您的 DatabaseContext 在您的中正确设置 DAL 层。
  • 在添加视图之前构建您的解决方案,确保它能够构建 成功,没有任何错误。
  • 确保包含 DatabaseContext 的项目设置为 启动项目,它还包含到的连接字符串 数据库。
  • 您可能需要从 DAL 添加对域的依赖项 项目。右键单击“依赖项”->“在 DAL 中添加引用” 项目并选中您的域项目旁边的复选框。
© www.soinside.com 2019 - 2024. All rights reserved.