【问题标题】:How to use EF6 with ASP.NET Core 1如何在 ASP.NET Core 1 中使用 EF6
【发布时间】:2016-11-11 02:03:15
【问题描述】:

我创建了一个 ASP.NET Core 1 项目并使用 .Net Core 1.0 框架。并且想使用Entity Framework 6
我遵循本教程https://docs.efproject.net/en/latest/platforms/aspnetcore/new-db.html,当我尝试使用以下语句进行迁移时:

PM> Add-Migration MyFirstMigration

然后它显示给我:

The EntityFramework package is not installed on project 'IndustryCloud'.

是否可以将 EF6 与 ASP.NET Core 1 一起使用?

【问题讨论】:

  • 您是在 .NET Core 上运行,还是在完整的 .NET Framework 上运行?
  • 您可以将 .Net Core 1.0 Framework 与 Entity Framework Core 1.0 一起使用,或者将 .NET Framework 4.5+ 与 Entity Framework 6 一起使用。在这两个选项中,您都可以使用 ASP .NET Core 1.0。
  • 我在 .NET Core 1.0 上运行。
  • 你看,不同的答案来自一个事实:is it possible to use EF6 with ASP.NET Core 1?yes,但对 是否可以将 EF6 与在 .NET Core 1.0 上运行的 ASP.NET Core 1 一起使用? 的问题的答案是
  • 那么 ASP.NET Core 1 还没有实体框架吗?那么,如何将 EF 仅与 .NET Core 1 一起用于控制台应用程序?

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


【解决方案1】:

您可以在 ASP.Net Core 1.0 中使用 Entity Framework 6。一个示例应用程序can be found on Github

为了使其正常工作,您必须按照存储库中的说明进行操作(下面我粘贴了关键部分,但我鼓励您检查存储库中的部分):

在 project.json 中:

  • 从目标框架中删除 netcoreapp1.0 并添加 net451。
  • 删除所有 EF Core 并将 Migrator.EF6.Tools + EF6 添加到您的依赖项中

Startup.cs 内部:

  • 删除所有与 EF Core 相关的内容。
  • 只需将您的数据库上下文添加到服务中:services.AddScoped<ApplicationDbContext>();

下一步:

删除 EF Core 生成的“Migrations”或“Data/Migrations”文件夹。

最后:

dotnet ef migrations enable
dotnet ef migrations add InitialCreate
dotnet ef database update

请注意,您可以使用另一个名为 MR.AspNet.Identity.EntityFramework6 的项目将 Asp.Net Core Identity 与 Entity Framework 6 连接起来。

【讨论】:

  • 那么你没有在 .NET Core 上运行。你的开场白不正确。
  • @mason 对不起,我的错误,我在考虑 ASP.NET Core。已编辑。
【解决方案2】:

您不能在 .Net Core 1.0 中使用 Entity Framework 6。有一个专门为.Net Core 1.0 开发的Entity Framework Core 1.0 包。您需要安装它才能在 .Net Core 1.0 项目中使用。

https://blogs.msdn.microsoft.com/dotnet/2016/06/27/entity-framework-core-1-0-0-available/

使用 Nuget 包管理器控制台安装。

PM> Install-Package Microsoft.EntityFrameworkCore.SqlServer

添加一个新的迁移(如果是第一个,它将添加必要的文件夹结构和类)

dotnet ef migrations add {MigrationName}

删除最近的迁移。

dotnet ef migrations remove

将数据库更新为最新版本(应用所有迁移)

dotnet ef database update

http://benjii.me/2016/05/dotnet-ef-migrations-for-asp-net-core/

你可以在 google 上找到很多文章。

【讨论】:

  • 该问题没有具体说明是否使用了 .NET Core。 ASP.NET Core 可以在完整的 .NET Framework 上运行,而不仅仅是 .NET Core。
  • 我同意。如果您在他提供的链接中看到。它提到 .NET core 1.0 作为先决条件。我确信他在 .Net core 1.0 上使用 asp.net core 1.0。
  • 如何迁移?
  • 我试了一下,得到了dotnet.exe : No executable found matching command "dotnet-ef"At line:1 char:1。我确实安装了Install-Package Microsoft.EntityFrameworkCore.SqlServer
  • 你更新了你的project.json,正如文章中提到的那样。
猜你喜欢
  • 2017-06-30
  • 1970-01-01
  • 2017-02-12
  • 1970-01-01
  • 2017-12-06
  • 2020-02-29
  • 1970-01-01
  • 2018-08-16
  • 1970-01-01
相关资源
最近更新 更多