Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Hinzufügen von ADO.NET Entity Data Model in VS 2017 und nichts passiert

Keine direkte Antwort, aber eine Problemumgehung für diesen Fehler, erstellen Sie eine Core 2.x-Konsolenanwendung, Projektdateiinhalt unten (funktioniert derzeit nicht mit Core 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 ist das Gerüst für Microsoft SQL Server-Strings, MySql.Data.EntityFrameworkCore soll MySql Server-Verbindungszeichenfolgen rüsten. Geben Sie dann in der Paket-Manager-Konsole (innerhalb von Visual Studio, getestet 2017 und 2019) Folgendes ein:

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

das war fow MySql. Geben Sie für MSSQL Folgendes ein:

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

Dadurch werden das Kontextmodell und die enthaltenen Klassen generiert, sodass Sie die Datenbank endlich zuerst in Ihrer Core-App verwenden können (ja, es ist Zeit, zum Core zu wechseln).