MVC脚手架或EF6代码优先迁移

时间:2019-05-30 07:10:20

标签: asp.net-mvc entity-framework asp.net-core entity-framework-6 asp.net-core-2.0

我有一个难题,我在vs2017(更新3)上使用.net core 2.0。当我拥有以下配置包时,可以使用mvc脚手架(创建视图和控制器),但随后出现ef6迁移错误

System.InvalidOperationException: The current CSharpHelper cannot scaffold literals of type 'Microsoft.EntityFrameworkCore.Metadata.Internal.DirectConstructorBinding'
<PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.8" />  
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="2.2.4" />    
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.0.0" PrivateAssets="All" />

当我具有以下配置时,可以使用MVC脚手架,但随后得到ef的以下错误。

System.NotSupportedException: Specified method is not supported.
<PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.7" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="2.0.3" /> 
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.0.3" PrivateAssets="All" />

现在,我仅将ef6工作示例放到一个单独的项目中,让我可以同时使用这两个示例。但是我不希望这样做,因为这意味着我需要在Web项目中创建DTO对象,以允许对控制器进行脚手架。

下面是解决方案的整个csproj项目组:

    <ItemGroup>
        <PackageReference Include="Microsoft.AspNetCore" Version="2.0.3" />
        <PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.8" />
        <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="2.2.4" />
        <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.0.3" PrivateAssets="All" />
        <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.0.0" PrivateAssets="All" />


        <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.0.3" />
        <PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="2.2.4" />
        <PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.2.4" />
        <PackageReference Include="MySql.Data" Version="8.0.16" />
        <PackageReference Include="MySql.Data.EntityFrameworkCore" Version="8.0.16" />
    </ItemGroup>

    <ItemGroup>
        <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.2" />
        <DotNetCliToolReference Include="Microsoft.Extensions.SecretManager.Tools" Version="2.0.1" />
        <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.3" />
    </ItemGroup>

0 个答案:

没有答案