无法创建类型为“ DataContext”的对象。针对设计时支持的不同模式

时间:2020-03-02 00:34:36

标签: asp.net-core entity-framework-core

我有多个项目的解决方案。我有一个名为“ Persistence”的项目,其中有数据库上下文的代码。我有一个用于实体的域项目,并且有一个将在前端应用程序中使用的API项目。

Persistence项目中的My DataContext.cs文件如下:

using System;
using Domain;
using Microsoft.EntityFrameworkCore;

namespace Persistence
{
    public class DataContext: DbContext
    {
        public DataContext(DbContextOptions options) : base(options){}

        public DbSet<Student> Students { get; set; }


        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            optionsBuilder.UseSqlServer(
                @"Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=testDB;Integrated Security=True");
        }
    }
}

当CD在持久性项目中并运行此命令时:

dotnet ef migrations add initcreate -s ..\API\

我收到此错误:

无法创建类型为“ DataContext”的对象。对于不同 设计时支持的模式,请参阅 https://go.microsoft.com/fwlink/?linkid=851728

总体而言,我仍然对实体框架和.net还是陌生的,感谢您的帮助和指导。

谢谢。

1 个答案:

答案 0 :(得分:0)

您会收到此错误,因为要生成迁移,您需要:

  1. 具有默认构造函数(即无参数)的DbContext 构造函数)
  2. 能够从ApplicationServices中获取DbContext(即依赖注入)
  3. 设计时工厂,返回正确配置的DbContext。

希望这会有所帮助。