MySQL未列在VS Express 2012版本中实体框架的数据库更新模型中

csh*_*der 5 c# mysql entity-framework visual-studio-express visual-studio-2012

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

看起来VS 2012快递版有些问题.

我需要知道这是VS 2012快递的问题,还是我错过了什么,

如何列出MySQL作为数据源?任何帮助将非常感激.

Tet*_*oto 1

据此,VS 2012 Express 不支持MySQL for Visual Studioas 扩展,但支持MySQL Connector/NET,根据这篇文章

MySQL for Visual Studio 不支持 Microsoft 开发产品的 Express 版本,包括 Visual Studio 和 Microsoft Visual Web Developer。

要将 MySQL Connector/Net 与 Express 版本的 Microsoft 开发产品一起使用,请使用 MySQL Connector/Net 6.7.4 或更高版本,而不安装 MySQL for Visual Studio。

以下是将 Connector/NET 与 EF 结合使用的一些步骤:

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

    MySql.Data.dll
    MySql.Data.Entity.dll (for EF6 it should be MySql.Data.Entity.EF6.dll)
    MySql.Web.dll
    
    Run Code Online (Sandbox Code Playgroud)

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

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

EF 5

<entityFramework>
    <defaultConnectionFactory type="MySql.Data.Entity.MySqlConnectionFactory, MySql.Data.Entity" />
</entityFramework>
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)
  1. 重建您的项目/解决方案并确保“MySQL 数据库”选项在数据源下拉列表中可用。

更新:

在对数据源可用性进行进一步研究后,我发现 Visual Studio Express 版本对第三方扩展有一定的限制,因此在某些情况下甚至不允许在 EDM 设计时创建与 MySQL 实例的连接(感谢Devart提醒)我关于这个)。作为解决方法,可以使用基于 CLI 的 EDM 生成器(请参阅示例用法说明),如下例所示:

edmgen.exe /mode:fullgeneration /c:"[MySQL DB connection string]" /project:[project name] /entitycontainer:[entity name] /namespace:[table namespace] /language:CSharp
Run Code Online (Sandbox Code Playgroud)

相关问题:

Visual Studio 2012 上的 mySQL 数据源

无法对实体框架 6 使用 MySQL 连接

适用于 Visual Studio 2012/2013 的 MySQL