Mysql
 sql >> Database >  >> RDS >> Mysql

Aggiunta di ADO.NET Entity Data Model in VS 2017 e non succede nulla

Non una risposta diretta ma una soluzione alternativa a questo bug, crea un'app console core 2.x, il contenuto del file di progetto di seguito (non funzionerà con core 3 al momento):

<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 consiste nello scaffoldare le stringhe di Microsoft SQL Server, MySql.Data.EntityFrameworkCore consiste nello scaffoldare le stringhe di connessione di MySql Server. Quindi nella console di gestione dei pacchetti (all'interno di Visual Studio, testato nel 2017 e nel 2019) digitare:

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

questo era MySql. Per tipo MSSQL:

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

questo genererà il modello di contesto e le classi che lo contengono in modo che tu possa finalmente utilizzare il database prima nella tua app principale (sì, è ora di passare al core).