运行update-database entityframeworkcore 2时出错

时间:2018-04-30 09:00:47

标签: c# entity-framework-core asp.net-core-2.0 asp.net-core-webapi

我在包含AspNet Core WebApi的解决方案的类库中安装了EntityFrameworkCore 2.0.2

我在项目中安装了以下软件包;

  

Microsoft.AspNetCore.Identity.EntityFrameworkCore - 2.0.2

     

Microsoft.EntityFrameworkCore - 2.0.2

     

Microsoft.EntityFrameworkCore.SqlServer - 2.0.2

     

Microsoft.Extensions.Identity.Stores - 2.0.2

     

System.Data.SqlClient - 4.4.3

我的类库项目调用上下文;

 public class MyContextFactory : IDesignTimeDbContextFactory<MyDataContext>
    {
        public MyContextFactory()
        {
        }

        public MyDataContext CreateDbContext(string[] args)
        {
            var builder = new DbContextOptionsBuilder<MyDataContext>();
            builder.UseSqlServer(DbGlobals.DevDatabase);

            return new MyDataContext(builder.Options);
        }
    }

当我尝试从程序包管理器控制台运行update-database命令时,我收到以下错误。

  

应用程序启动异常:System.IO.FileNotFoundException:可以   找不到文件   &#39; C:\用户\亚光\源\回购\项目\ Services.WebApi \ BIN \调试\ netcoreapp2.0 \ ef.xml&#39;

现在,当我尝试add-migration时也会发生这种情况。

我无法在ef.xml上找到任何详细信息及其生成方式?谁能告诉我这里发生了什么。

如果我运行add-migration我生成了迁移,但随后出现错误;

  

调用方法时遇到错误&#39; BuildWebHost&#39;课程&#39;课程&#39;。继续没有应用程序服务提供商。错误:找不到文件'C:\Users\matt\Source\Repos\project\Services.WebApi\bin\Debug\netcoreapp2.0\ef.xml'.

我试过清理项目,重新编译(没有错误),我也查看了引用的文件夹,文件不存在。它(在文件搜索中)是否已在其他地方生成?

现在迁移工作正常吗?

根据我的BuildwebHost请求

 public static IWebHost BuildWebHost(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .UseStartup<Startup>()
                .Build();

我在我的Startup.cs中添加了EF;

        services.AddDbContext<MyDataContext>(
            options => options
            .UseSqlServer(DbGlobals.DevDatabase));

1 个答案:

答案 0 :(得分:0)

您使用的命令update-databaseadd-migration看起来不像支持的Entity Framework核心CLI命令:

  • dotnet ef add migrations <migration-name>
  • dotnet ef database update

另请查看此SO问题以获取更多信息: Entity Framework Core 2.0 add-migration not generating anything