ASP.NET核心中无法识别UseMySQL扩展方法

时间:2017-01-22 23:36:36

标签: entity-framework asp.net-core

环境:Ubuntu 16.04,.NET Core 1.10(1.0.0-preview2-1-003177),Visual Studio Code 1.8.1

我通过运行以下命令创建了一个ASP.NET MVC Core应用程序:

$ dotnet new -t web

我可以在VSC中加载文件夹并进行调试。

默认情况下,引擎会为Sqlite生成代码。我正在改变它以使用MySQL。我的更改基于以下两篇文章中的信息:

http://insidemysql.com/howto-starting-with-mysql-ef-core-provider-and-connectornet-7-0-4/ https://damienbod.com/2016/08/26/asp-net-core-1-0-with-mysql-and-entity-framework-core/

首先,我将以下几行添加到dependencies的{​​{1}}部分。

project.json

运行"MySql.Data.Core" :"7.0.4-ir-191", "MySql.Data.EntityFrameworkCore": "7.0.6-IR31" 后,下载了所需的DLL。

下一步是修改Startup.cs并修改

dotnet restore

 services.AddDbContext<ApplicationDbContext>(options =>
    options.UseSqlite(Configuration.GetConnectionString("DefaultConnection")));

基本上,我将 services.AddDbContext<ApplicationDbContext>(options => options.UseMySQL(Configuration.GetConnectionString("DefaultConnection"))); 替换为UseSqlite

但是,UseMySQL似乎无法使用扩展方法UseMySQLUseMySQL

想知道我是否错过了某个地方的某个步骤。问候。

3 个答案:

答案 0 :(得分:7)

添加using MySQL.Data.EntityFrameworkCore.Extensions;语句。

答案 1 :(得分:2)

我已经在我的Mac上成功使用了这个,并将最新版本的VS社区用于ASP CORE MVC项目,我只需要添加以下NuGet-Packages:

Microsoft.EntityFrameworkCore  
MySql.Data.EntityFrameworkCore

然后在你的课堂上使用它们,如:

using Microsoft.EntityFrameworkCore;
using MySQL.Data.EntityFrameworkCore.Extensions;

请注意,USING语句中的MySQL是CAPITAL字母,它是NuGet包名称上的MySql。 希望这个嗨

答案 2 :(得分:0)

即使安装了Pomelo.EntityFrameworkCore.MySql,我也遇到了同样的问题, 刚刚通过终端安装了软件包:

dotnet add package Pomelo.EntityFrameworkCore.MySql

成功了!