MySQL 未在 VS Express 2012 版中 entity framework 的数据库更新模型中列出

MySQL not Listed in Updated model from Database for entity framework in VS Express 2012 edition

我正在尝试从数据库更新模型并使用 MySQL 作为我的数据源,似乎在将 MySQL 列为数据源时出现了一些问题。 请查看内嵌图片: 我已经为 visual studio 安装了 MySQL ,这样我就可以看到其他人创建的现有数据模型, 但我无法更新数据模型。 我也尝试了这里给出的解决方案: ,但没有成功。

VS 2012 Express Edition 好像有问题。

我想知道这是 VS 2012 express 的问题,还是我遗漏了什么,

如何将MySQL列为数据源?? 任何帮助将不胜感激。

AFAIK,MySQL for Visual Studio 不支持 VS 2012 Express 作为扩展,但 MySQL Connector/NET 支持,根据 this article

MySQL for Visual Studio does not support Express versions of Microsoft development products, including the Visual Studio and the Microsoft Visual Web Developer.

To use MySQL Connector/Net with an Express versions of Microsoft development products, use MySQL Connector/Net 6.7.4 or later, without installing the MySQL for Visual Studio.

以下是使用 Connector/NET 和 EF 的一些步骤:

  1. 安装MySQLConnector/NET,在您的项目中添加以下3个DLL文件作为参考:

    MySql.Data.dll
    MySql.Data.Entity.dll (for EF6 it should be MySql.Data.Entity.EF6.dll)
    MySql.Web.dll
    

MySQL\MySQL Connector Net [version number]\Assemblies\[.NET version]\ 上存在所需的文件,例如C:\Program Files\MySQL\MySQL Connector Net 6.x.x\Assemblies\v4.5\.

  1. 根据使用的 EF 版本更改 web.config 文件中的 entityFramework 元素:

EF 5

<entityFramework>
    <defaultConnectionFactory type="MySql.Data.Entity.MySqlConnectionFactory, MySql.Data.Entity" />
</entityFramework>

EF 6

<entityFramework codeConfigurationType="MySql.Data.Entity.MySqlEFConfiguration, MySql.Data.Entity.EF6">
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
    <providers>
      <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" /> 
    </providers>
</entityFramework>
  1. 重建您的project/solution并确保"MySQL Database"选项在数据源下拉列表中可用。

更新:

在对数据源可用性进行进一步研究后,我发现 Visual Studio Express 版本对第三方扩展有一定的限制,因此在某些情况下甚至不允许创建与 [=75= 的连接] EDM 设计时的实例(感谢 Devart reminds me about this). As a workaround, CLI-based EDM Generator may be used (see example and usage description)就像这个例子:

edmgen.exe /mode:fullgeneration /c:"[MySQL DB connection string]" /project:[project name] /entitycontainer:[entity name] /namespace:[table namespace] /language:CSharp

相关问题:

mySQL DataSource on Visual Studio 2012

Can't use a MySQL connection for entity framework 6

MySQL For Visual Studio 2012/2013