在VS 2017中添加ADO.NET实体数据模型并且什么也没有发生

时间:2019-09-06 02:36:22

标签: mysql visual-studio ado.net

在Visual Studio的“实体数据模型”向导中选择MySQL数据源并单击“下一步”后,该向导将关闭。怎么了?

enter image description here enter image description here

2 个答案:

答案 0 :(得分:0)

不是此问题的直接答案,而是一种解决方法,创建一个核心2.x控制台应用程序,在下面投影项目文件内容(目前不适用于核心3):

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp2.2</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="2.2.6">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
    </PackageReference>
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.2.6" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.2.6">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
    </PackageReference>
    <PackageReference Include="MySql.Data.EntityFrameworkCore" Version="8.0.17" />
  </ItemGroup>

</Project>

Microsoft.EntityFrameworkCore.SqlServer用于构建Microsoft SQL Server字符串,MySql.Data.EntityFrameworkCore用于构建MySql Server连接字符串。 然后在包管理器控制台(在Visual Studio中,已于2017年和2019年测试)中输入:

Scaffold-DbContext "server=localhost;port=3306;user=USERNAME;password=YOUR_PASSWORD;database=DATABASE_NAME" MySql.Data.EntityFrameworkCore -OutputDir Models -f

那是MySql。对于MSSQL类型:

Scaffold-DbContext "Server=SERVER_ADDRESS;Database=DATABASE_NAME;user=USERNAME; password=YOUR_PASSWORD;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -f

这将生成上下文模型和包含的类,因此您可以最终在核心应用程序中首先使用数据库(是的,是时候移到核心了)。

答案 1 :(得分:0)

Install-Package MySQL.Data -Version 6.9.9
Install-Package MySql.Data.Entity -Version 6.9.10
  • 别忘了在web.config中添加此行
<system.data>
    <DbProviderFactories>
      <remove invariant="MySql.Data.MySqlClient" />
      <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.9.10.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
    </DbProviderFactories>
  </system.data>