Asp.net core 实体框架核心和实体框架6都已安装

Asp.net core 实体框架核心和实体框架6都已安装,asp.net-core,entity-framework-core,Asp.net Core,Entity Framework Core,我使用Visual Studio 2017创建了一个新的ASP.NET核心项目。 我添加了实体框架核心的迁移,如下所示 add-migration "Initial Create" 并获取以下错误: Both Entity Framework Core and Entity Framework 6 are installed. The Entity Framework Core tools are running. Use 'EntityFramework\Add-Migration' for

我使用Visual Studio 2017创建了一个新的ASP.NET核心项目。 我添加了实体框架核心的迁移,如下所示

add-migration "Initial Create"
并获取以下错误:

Both Entity Framework Core and Entity Framework 6 are installed. The Entity Framework Core tools are running. Use 'EntityFramework\Add-Migration' for Entity Framework 6.
Build Failed.
您知道如何解决此错误吗


更新1-2017年3月14日-运行命令后收到结果 我看到以下输出,最后有错误消息。

Welcome to .NET Core!
---------------------
Learn more about .NET Core @ https://aka.ms/dotnet-docs. Use dotnet --help to see available commands or go to https://aka.ms/dotnet-cli-docs.

Telemetry
--------------
The .NET Core tools collect usage data in order to improve your experience. The data is anonymous and does not include command-line arguments. The
 data is collected by Microsoft and shared with the community.
You can opt out of telemetry by setting a DOTNET_CLI_TELEMETRY_OPTOUT environment variable to 1 using your favorite shell.
You can read more about .NET Core tools telemetry @ https://aka.ms/dotnet-cli-telemetry.

Configuring...
-------------------
A command is running to initially populate your local package cache, to improve restore speed and enable offline access. This command will take up
 to a minute to complete and will only happen once.
Decompressing 0%Decompressing 1%Decompressing 2%Decompressing 3%Decompressing 4%
Decompressing 5%Decompressing 6%Decompressing 7%Decompressing 8%Deco
mpressing 9%Decompressing 10%Decompressing 11%Decompressing 12%Decompressing 13
%Decompressing 14%Decompressing 15%Decompressing 16%Decompressing 17%
Decompressing 18%Decompressing 19%Decompressing 20%Decompressing 21%De
compressing 22%Decompressing 23%Decompressing 24%Decompressing 25%Decompressin
g 26%Decompressing 27%Decompressing 28%Decompressing 29%Decompressing 30%
Decompressing 31%Decompressing 32%Decompressing 33%Decompressing 34%
Decompressing 35%Decompressing 36%Decompressing 37%Decompressing 38%Decompre
ssing 39%Decompressing 40%Decompressing 41%Decompressing 42%Decompressing 43%
Decompressing 44%Decompressing 45%Decompressing 46%Decompressing 47%
Decompressing 48%Decompressing 49%Decompressing 50%Decompressing 51%Deco
mpressing 52%Decompressing 53%Decompressing 54%Decompressing 55%Decompressing 
56%Decompressing 57%Decompressing 58%Decompressing 59%Decompressing 60%
Decompressing 61%Decompressing 62%Decompressing 63%Decompressing 64%
Decompressing 65%Decompressing 66%Decompressing 67%Decompressing 68%Decompress
ing 69%Decompressing 70%Decompressing 71%Decompressing 72%Decompressing 73%
Decompressing 74%Decompressing 75%Decompressing 76%Decompressing 77%
Decompressing 78%Decompressing 79%Decompressing 80%Decompressing 81%Decomp
ressing 82%Decompressing 83%Decompressing 84%Decompressing 85%Decompressing 86
%Decompressing 87%Decompressing 88%Decompressing 89%Decompressing 90%
Decompressing 91%Decompressing 92%Decompressing 93%Decompressing 94%De
compressing 95%Decompressing 96%Decompressing 97%Decompressing 98%Decompressin
g 99%Decompressing 100% 5083 ms
Expanding 0%Expanding 1%Expanding 2%Expanding 3%Expanding 4%Expanding 5%Ex
panding 6%Expanding 7%Expanding 8%Expanding 9%Expanding 10%Expanding 11%
Expanding 12%Expanding 13%Expanding 14%Expanding 15%Expanding 16%Expanding 17%
Expanding 18%Expanding 19%Expanding 20%Expanding 21%Expanding 22%Expand
ing 23%Expanding 24%Expanding 25%Expanding 26%Expanding 27%Expanding 28%
Expanding 29%Expanding 30%Expanding 31%Expanding 32%Expanding 33%Expanding 34
%Expanding 35%Expanding 36%Expanding 37%Expanding 38%Expanding 39%Ex
panding 40%Expanding 41%Expanding 42%Expanding 43%Expanding 44%Expanding 45%
Expanding 46%Expanding 47%Expanding 48%Expanding 49%Expanding 50%Expandin
g 51%Expanding 52%Expanding 53%Expanding 54%Expanding 55%Expanding 56%
Expanding 57%Expanding 58%Expanding 59%Expanding 60%Expanding 61%Expanding 62%
Expanding 63%Expanding 64%Expanding 65%Expanding 66%Expanding 67%Expa
nding 68%Expanding 69%Expanding 70%Expanding 71%Expanding 72%Expanding 73%
Expanding 74%Expanding 75%Expanding 76%Expanding 77%Expanding 78%Expanding 
79%Expanding 80%Expanding 81%Expanding 82%Expanding 83%Expanding 84%
Expanding 85%Expanding 86%Expanding 87%Expanding 88%Expanding 89%Expanding 90%
Expanding 91%Expanding 92%Expanding 93%Expanding 94%Expanding 95%Expand
ing 96%Expanding 97%Expanding 98%Expanding 99%Expanding 100% 13884 ms


dotnet : No executable found matching command "dotnet-ef"
At line:1 char:1
+ dotnet ef migrations add "Initial Create"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (No executable f...and "dotnet-ef":String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError

更新2-2017年3月14日-Startup.cs
使用Microsoft.AspNetCore.Builder;
使用Microsoft.AspNetCore.Hosting;
使用Microsoft.AspNetCore.Http;
使用Microsoft.EntityFrameworkCore;
使用Microsoft.Extensions.DependencyInjection;
使用Microsoft.Extensions.Logging;
使用Microsoft.Extensions.Configuration;
使用OdeToFood.Services;
使用OdeToFood.实体;
使用Microsoft.AspNetCore.Routing;
使用Microsoft.AspNetCore.StaticFiles;
使用Microsoft.AspNetCore.Identity.EntityFrameworkCore;
木薯
{
公营创业
{
公共IConfiguration配置{get;set;}
公共启动(IHostingEnvironment环境)
{
//TN-读取设置文件
var builder=new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile(“appsettings.json”)
.AddenEnvironmentVariables();
Configuration=builder.Build();
}
//此方法由运行时调用。请使用此方法将服务添加到容器中。
//有关如何配置应用程序的更多信息,请访问https://go.microsoft.com/fwlink/?LinkID=398940
public void配置服务(IServiceCollection服务)
{
services.AddMvc();
services.AddSingleton(配置);
services.AddSingleton();
services.addScope();//TN-每个HTTP请求一个此服务的实例。
services.AddDbContext(options=>options.UseSqlServer(Configuration.GetConnectionString(“DefaultConnection”));
服务.额外性()
.AddEntityFrameworkStores();
}
//此方法由运行时调用。请使用此方法配置HTTP请求管道。
公共void配置(IApplicationBuilder应用程序、IHostingEnvironment环境、iLogger工厂)
{
loggerFactory.AddConsole();
if(env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
其他的
{
//app.UseExceptionHandler(“/error”);
//app.UseExceptionHandler(新的ExceptionHandlerOptions{ExceptionHandlingPath=“/error”});
app.UseExceptionHandler(新的ExceptionHandlerOptions
{
ExceptionHandler=context=>context.Response.WriteAsync(“Opps!”)
});
}
//app.UseDefaultFiles();//TN-将选择index.html
//app.UseStaticFiles();
app.UseFileServer();//TN-这将包括UseDefaultFiles()和UseStaticFiles
/*
app.UseWelcomePage(新的WelcomePage选项
{
Path=“/welcome”
});
app.Run(异步(上下文)=>
{
//TN-直接从配置文件读取
//var消息=配置[“问候语”];
//TN-依赖项注入-通过IOC从配置字符串读取
var message=greeter.GetGreeting();
wait context.Response.WriteAsync(消息);
});
*/
app.UseIdentity();
//app.UseMvcWithDefaultRoute();
应用程序UseMvc(配置路由);
//TN-如果没有路由匹配
运行(ctx=>ctx.Response.WriteAsync(“未找到”);
}
专用void配置路由(IRouteBuilder routeBuilder)
{
//主页/索引
MapRoute(“默认值”,
“{controller=Home}/{action=Index}/{id?}”);
}
}
}
更新3-2017年3月14日-添加csproj文件

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup Label="Globals">
    <SccProjectName>SAK</SccProjectName>
    <SccProvider>SAK</SccProvider>
    <SccAuxPath>SAK</SccAuxPath>
    <SccLocalPath>SAK</SccLocalPath>
  </PropertyGroup>

  <PropertyGroup>
    <TargetFramework>netcoreapp1.1</TargetFramework>
    <PackageTargetFallback>portable-net45+win8</PackageTargetFallback>
  </PropertyGroup>

  <ItemGroup>
    <!--<Content Include="wwwroot\index.html" />-->
    <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="1.0.0" />
    <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="1.0.0" />
  </ItemGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.0.0" />
    <PackageReference Include="Microsoft.AspNetCore" Version="1.1.1" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.1.2" />
    <PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="1.1.1" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="1.1.1" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="1.1.1" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer.Design" Version="1.1.1" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="1.1.0" />
    <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="1.1.1" />
    <PackageReference Include="Microsoft.VisualStudio.Web.BrowserLink" Version="1.1.0" />
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="1.1.0" />
  </ItemGroup>
  <ItemGroup>
    <Folder Include="Controllers\" />
    <Folder Include="Data\" />
    <Folder Include="Views\Home\" />
    <Folder Include="wwwroot\images\" />
  </ItemGroup>

</Project>

萨克
萨克
萨克
萨克
netcoreapp1.1
portable-net45+win8

要添加EF7的迁移,请使用dotnet命令:
dotnet ef migrations add Initial


要更新数据库,请使用dotnet命令:
dotnet ef database update

也许您的解决方案中至少有两个项目,每个项目使用任一版本的ef。通过发出“管理解决方案的NuGet软件包…”,您可以验证情况是否如此。然后,也许你需要牺牲使用EF6.x的那个。在此之后,您将需要重新启动VS,可能一些缓存会阻止您在卸载包时完全删除它


编辑:。。或者你可能与他们都相处得很好,但请仔细阅读信息并按照上面所说的去做……

我是如何在VS 2017中解决这个问题的

  • 从解决方案中的所有项目中删除EntityFramework(非EntityFrameworkCore)引用
    • 在资源管理器(Windows资源管理器)中打开解决方案文件夹
    • 接近VS
    • 删除文件夹
    • 再次打开解决方案
    • 运行
      更新数据库
      ,警报消失
你看不到“.vs”文件夹吗?

只要

编辑项目(项目->右键->编辑)并删除EntityFramewok行

删除一行,如

    <PackageReference Include="Entityframework" Version="6.2.0" />


如果同时安装了Entity Framework Core和Entity Framework 6,并且您想使用Entity Framework 6,则仅使用EntityFramework Core。
在Package Manager控制台中使用以下命令:

'EntityFramework\Update-Database'.
无需删除或更改任何内容。加上**
    <PackageReference Include="Entityframework" Version="6.2.0" />
'EntityFramework\Update-Database'.
EntityFramework6\Add-Migration Foo
EntityFramework6\Update-Database
EntityFrameworkCore\Add-Migration Foo
EntityFrameworkCore\Update-Database
EntityFramework6\Add-Migration Foo -Context BarDbContext
EntityFramework6\Add-Migration Baz -Context FooDbContext