实体框架7迁移 - OnConfiguring bug

时间:2016-01-12 21:37:40

标签: entity-framework entity-framework-core

我试图使用包管理器控制台将迁移添加到我的EF7项目中, 但是我发现包管理器控制台需要你有3个令人不安的东西:

  1. 无参数的ctor(奇怪......但并不令人不安)
  2. 您必须覆盖OnConfiguring方法....(我为什么要这样做?)
  3. 您必须使用OnConfiguring方法配置数据库连接!
  4. 这三件事我很高兴实现依赖注入,并且可以使用内存数据库(单元测试)。

    (我上面提到的那三点来自于我尝试Add-Migration时遇到的包管理器控制台异常

    抱歉没有dnxing。

    有什么想法吗?

1 个答案:

答案 0 :(得分:1)

还有两个未提及的选项。

  1. 使用名为Startup的类将您的上下文添加到IoC容器中。

    class Startup
    {
        void ConfigureServices(IServiceContainer services)
            => services
                .AddEntityFramework()
                .AddSqlServer()
                .AddDbContext<MyDbContext>(
                    options => options.UseSqlServer(myConnectionString));
    }
    
  2. 告诉EF如何使用IDbContextFactory在设计时构建您的上下文。

    class MyDbContextFactory : IDbContextFactory<MyDbContext>
    {
        public MyDbContext Create()
        {
            // TODO: Construct your context
            return new MyDbContext();
        }
    }