答案 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
<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>