asp.net核心问题添加第一个数据库迁移

时间:2017-07-14 20:02:02

标签: c# asp.net-mvc entity-framework

我正在使用新的asp.net核心并在sep dll中添加了我的类和数据库上下文我已根据文档添加了代码。

public IConfigurationRoot Configuration { get; }

    // This method gets called by the runtime. Use this method to add services to the container.
    public void ConfigureServices(IServiceCollection services)
    {
        // Add framework services.
        services.AddMvc();
        services.AddDbContext<solitudeDContext>(options => 


 options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection") 
  ,b=>b.MigrationsAssembly("solitudedcore")));          
    }

但是当我运行以下命令时,我仍然收到以下错误

  

dotnet ef迁移添加firstdb

     

您的目标项目&#39; solitudeeccore&#39;与您的迁移程序集“solitudedcore”不匹配。更改目标项目或更改迁移程序集。   使用DbContextOptionsBuilder更改迁移程序集。例如。 options.UseSqlServer(connection,b =&gt; b.MigrationsAssembly(&#34; solitudeeccore&#34;))。默认情况下,迁移程序集是包含DbContext的程序集。   使用程序包管理器控制台的默认项目下拉列表或执行&#34; dotnet ef&#34;将目标项目更改为迁移项目。来自包含迁移项目的目录。

我已将下拉菜单更改为项目,并按照EF核心github https://github.com/aspnet/EntityFramework/issues/7869上的指示添加了b =&gt; b.MigrationsAssembly(&#34; solitudedcore&#34;)

我还包括了我的项目,供您参考。

<PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.0.0" />
  <PackageReference Include="Microsoft.AspNetCore" Version="1.1.2" />
  <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.1.3" />
  <PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="1.1.2" />
  <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="1.1.2" />
  <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="1.1.2" />
  <PackageReference Include="Microsoft.VisualStudio.Web.BrowserLink" Version="1.1.2" />
  <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="1.0.0" />
  <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="1.1.1" />

我的appsettings文件如下

{
  "Logging": {
    "IncludeScopes": false,
    "LogLevel": {
      "Default": "Warning"
    }
  },

  "ConnectionStrings": {
    "DefaultConnection": "Data Source=DESKTOP-JHIMUM4\\SQLEXPRESS2014;Initial Catalog=solitudeec;Trusted_Connection=True;MultipleActiveResultSets=true"
  }


}

任何想法或解决方案都将受到赞赏。

请在此处找到我的项目布局

https://imgur.com/a/oSvr4

修改1

下面的人确实是正确的,它是dll的拼写,但你还需要定位你的dll而不是实际的dll本身的项目。

在cmd提示符中调用

创建迁移
  

dotnet ef迁移添加firstdb

并推送您的更改只需致电

  

dotnet ef数据库更新-e Production

1 个答案:

答案 0 :(得分:2)

迁移程序集名称中存在拼写错误。

您的目标项目'solitudeeccore'与您的迁移程序集'solitudedcore'不匹配。