首页 > 解决方案 > 如何创建类库 proejct 来处理实体框架核心 2.2 中的迁移和数据库对象?

问题描述

我创建了一个 .net core 2.2 web mvc 应用程序。然后我创建了一个 .net core 2.2 类库来包含我所有的数据库模型。尝试运行初始迁移时,出现错误无法创建类型为“X”的对象。

我在主 Web 项目中引用了我的类库,将其设置为启动,并在包管理器控制台中将默认项目设置为类库。

我希望这会创建我的迁移,但我收到此错误。

public class ProjectWalesDbContext : DbContext
{
    public ProjectWalesDbContext(DbContextOptions<ProjectWalesDbContext> options)
     : base(options)
    { }

    public DbSet<User> Users { get; set; }

    public DbSet<UserCourse> UserCourses { get; set; }

    public DbSet<Course> UserCourse { get; set; }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<User>()
            .Property(b => b.created_at)
            .HasDefaultValueSql("getdate()");
        modelBuilder.Entity<User>()
           .Property(b => b.password_reset_date)
           .HasDefaultValueSql("getdate()");
        modelBuilder.Entity<User>()
          .Property(b => b.password_reset_required)
          .HasDefaultValueSql("0");

        modelBuilder.Entity<UserCourse>()
          .Property(b => b.course_progress)
          .HasDefaultValueSql("0");
    }
}

这是我设置的数据库上下文,我在其他项目中设置它的方式相同,所以我看不出我做错了什么。任何帮助将不胜感激

标签: entity-framework-core-2.2

解决方案


解决了,我需要添加以下行:

services.AddDbContext<ProjectWalesDbContext>(item => item.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

到网络应用程序的启动,所以我可以创建上下文。


推荐阅读