如何在.NET Core中使用EF DbFirst和MySQL?

Hon*_*hen 6 mysql entity-framework .net-core db-first

我尝试在我的项目中使用EF和MySQL.我补充说:

MySql.Data.EntityFrameworkCore
MySql.Data.EntityFrameworkCore.Design

进入我project.json的工具部分project.json是空的.当我跑:

Scaffold-DbContext "myconnectionstr" MySql.Data.EntityFrameworkCore -OutputDir Models -StartupProject "myproject"
Run Code Online (Sandbox Code Playgroud)

控制台显示错误:

无法在提供程序集MySql.Data.EntityFrameworkCore中找到名为DesignTimeProviderServicesAttribute的预期程序集属性

Ily*_*kov 5

看来“官方”提供商MySql.Data.EntityFrameworkCore 7.0.7-m61仍然不支持脚手架。然而,它与 Pomelo.EntityFrameworkCore.MySql免费社区提供商一起工作得很好:

dotnet ef dbcontext scaffold "Host=localhost;Port=3306;Database=foodb;Username=root;Password=mysql" ^
    Pomelo.EntityFrameworkCore.MySql ^
    --force ^
    --context "FooContext" ^
    --output-dir "Entities" ^
    --verbose
Run Code Online (Sandbox Code Playgroud)

我们的csproj(Visual Studio 2017):

<Project Sdk="Microsoft.NET.Sdk">
    <PropertyGroup>    
        <TargetFramework>netcoreapp1.1</TargetFramework>
    </PropertyGroup>

    <ItemGroup>
        <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="1.1.1" />
        <PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.0.0" />
        <PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="1.1.2-preview-10036" />
        <PackageReference Include="Pomelo.EntityFrameworkCore.MySql.Design" Version="1.1.2-preview-10036" />

        <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="1.0.0" />
    </ItemGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)