【问题标题】:Visual Studio 2013 - execute Model.edmx.sql trough MySQL?Visual Studio 2013 - 通过 MySQL 执行 Model.edmx.sql?
【发布时间】:2014-05-07 22:29:19
【问题描述】:

我正在学习 ADO.NET 模型在带有 MySQL 的实体框架中的工作方式。我生成新的测试模型,然后选择“从模型生成数据库”
它为我生成新文件“model_name.edms.sql” - 用于创建数据库的实际 MySQL 脚本。
但是要执行它,我必须“连接到服务器”,默认情况下是 SQL Server 2012。但在我的情况下,我使用 MySQL 而不是 MS SQL Server。我没有 SQL12 实例,我正在使用 MySQL

如何更改它以连接到 MySQL?

附:我知道我可以直接在数据库上使用“新查询”并复制/粘贴文件内容并执行。我也可以使用 MySQL Workbench 和大量其他应用程序,但是我在 VS2013 中工作,其中大多数工具已经集成,我不敢相信 VS13 中的 SQL 文件只能通过 MS SQL12 执行

【问题讨论】:

  • 您确定生成的脚本是针对MySql而不是针对SqlServer的吗?
  • 是的,你生成“*.edmx.sql”文件我在模型属性“DLL 生成模板”中设置为使用“SSDLToMySQL.tt (VS)”而不是默认值“SSDLToSQL10.tt ( VS)”我相信定义命令的语法将为 MS SQL 或 MySQL 生成。无论如何,“.sql”文件扩展名都没有定义它必须通过 MS SQL 完全打开。所有 SQL 数据库都使用 .sql 文件来存储过程。

标签: mysql sql entity-framework ado.net visual-studio-2013


【解决方案1】:

我刚刚遇到了同样的问题,这就是解决方法。 我正在使用 VS 2010 Ultimate,但我想在 VS 2013 中是一样的。

首先,当您从工具栏连接(并执行 sql)时,您实际上请求在 'Transact-SQL 编辑器'工具栏上执行此操作,这意味着工具栏处理 MS 数据库。这就是为什么您总是会看到一个连接到 MS 数据库的对话框。

如果 MySQL 包正确安装在 VS 中(显然你就是这种情况),你应该:

  1. 右键单击任何现有工具栏(或转到查看->工具栏)并选择 MySQL。这应该会添加 MySql 工具栏。
  2. 单击左起第一个按钮(在'MySQL 工具栏'中)以连接到现有数据连接创建一个新的连接到你的 MySql 数据库。将添加一个 MySql 脚本选项卡。
  3. 复制所有从EDMX文件生成的sql到'MySql script tab'
  4. 从“MySql 脚本选项卡”运行脚本

应该这样做。 我知道仍然涉及到一些复制粘贴,但至少您不必离开 VS。

希望有帮助

欢呼

【讨论】:

  • 感谢您的评论,我发现您可以将 *.sql 文件的内容复制/粘贴到 MySQL 脚本执行区,但它与执行 *.sql 不同直接存档。我并不是要大惊小怪,我只是认为它必须在设置中进行调整,而不是硬编码到 MS SQL,我知道 VS 是 MS 工具,但 MS SQL 并不是世界上唯一的数据库......我会将您的答案标记为答案,因为它确实是当前情况下唯一的解决方案!谢谢!
【解决方案2】:

首先,您必须确保已下载 MySQL for Visual Studio。这不是连接器/网络(尽管您可能也应该拥有它)。

在 VS 中,当您打开服务器资源管理器时,您应该能够添加数据库。输入您的服务器名称、用户名、密码,不要忘记单击“高级”按钮并添加您的端口(通常为 3306)。所有这些信息都可以从您的 MySQL Workbench 获得。现在您应该能够使用与 SQL Server 相同的步骤将 EDMX 部署到 MySQL 数据库。

Oracle 的完整步骤可以在http://dev.mysql.com/doc/connector-net/en/connector-net-visual-studio-making-a-connection.html 找到。

编辑:执行上述步骤后,右键单击 EDMX 的空白区域,然后在 DDL 生成模板的下拉列表中选择 SSDLToMySQL.tt。 SSDLToSQL[version].tt 是默认选项。

【讨论】:

  • 1) 我确实为 VS2013 安装了 MySQL 包 2) 你为我提供了一个链接和关于如何在“服务器资源管理器”中将 MySQL 连接添加到数据库的说明,但是我的问题是关于模型的执行。 edmx.sql 默认希望在 MS SQL 中执行,而不是在 MySQL 中执行,无论您在“Server Explorrer”中设置了连接还是安装了“用于 VS2013 的 MySQL 工具”。我之前已经完美地建立了连接,但是它不允许我为已经建立连接的 MySQL 执行脚本。它要我创建我不想要的新 MS SQL 连接。
【解决方案3】:

如果您将 whatever.edmx.sql 文件重命名为 whatever.edmx.mysql,它将在适当的工具中打开并允许您连接到 MySQL 数据库服务器并运行脚本。
也许在某个时候,生成器会更新以创建带有“.mysql”而不是“.sql”文件扩展名的 EDMX 文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-07
    • 2015-04-29
    • 2014-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多