[英]scaffold-DbContext , command results in exception: System.Reflection.TargetInvocationException
[英]Scaffold-DbContext: command not found
我嘗試從現有數據庫中反向工程我的模型,但命令: Scaffold-DbContext "Server=(db);Database=xxxx;Trusted_connection=true;" Microsoft.EntityFrameWorkCore.SqlServer -OutputDir Models
Scaffold-DbContext "Server=(db);Database=xxxx;Trusted_connection=true;" Microsoft.EntityFrameWorkCore.SqlServer -OutputDir Models
不起作用。
我收到標題中的錯誤消息。
我安裝了 Nuget 包:
Microsoft.EntityFrameworkCore.SqlServer
Microsoft.EntityFrameworkCore.Tools
Microsoft.EntityFrameworkCore.SqlServer.Design
我不知道為什么它不起作用。( dotnet ef
命令有效)我確定這是一個小問題,但我找不到解決方案。 請幫我
我的.csproj:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp1.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="IdentityServer4">
<Version>1.5.0</Version>
</PackageReference>
<PackageReference Include="IdentityServer4.AccessTokenValidation">
<Version>1.2.0</Version>
</PackageReference>
<PackageReference Include="IdentityServer4.AspNetIdentity">
<Version>1.0.1</Version>
</PackageReference>
<PackageReference Include="Microsoft.AspNetCore" Version="1.1.1" />
<PackageReference Include="Microsoft.AspNetCore.Identity">
<Version>1.1.1</Version>
</PackageReference>
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore">
<Version>1.1.1</Version>
</PackageReference>
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.1.2" />
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="1.1.1" />
<PackageReference Include="Microsoft.EntityFrameworkCore">
<Version>1.1.1</Version>
</PackageReference>
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer">
<Version>1.1.2</Version>
</PackageReference>
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer.Design">
<Version>1.1.2</Version>
</PackageReference>
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools">
<Version>1.1.1</Version>
</PackageReference>
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="1.1.1" />
<PackageReference Include="Microsoft.VisualStudio.Web.BrowserLink" Version="1.1.0" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="1.1.1" PrivateAssets="All" />
</ItemGroup>
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="1.0.1" />
</ItemGroup>
</Project>
通過在包管理器控制台中運行以下命令,在項目中安裝 Microsoft EntityFrameworkCore 工具 nuget 包。
Install-Package Microsoft.EntityFrameworkCore.Tools -Version 1.1.2
這將安裝 Cmdlet 以通過包管理器控制台運行數據庫優先方法。 有關詳細信息,請訪問https://www.nuget.org/packages/Microsoft.EntityFrameworkCore.Tools/
使用dotnet ef dbcontext scaffold
而不是Scaffold-DbContext
例如
dotnet ef dbcontext scaffold "Host=my_host;Database=my_db;Username=my_user;Password=my_pw" Npgsql.EntityFrameworkCore.PostgreSQL -c ContextName -o OutPutFolder
運行dotnet ef dbcontext scaffold -h
以查看您可以通過的選項!
修改.csproj
文件以包含以下部分:
<ItemGroup>
<DotNetCliToolReference
Include="Microsoft.EntityFrameworkCore.Tools.DotNet"
Version="1.0.0-msbuild3-final" />
</ItemGroup>
僅當安裝工具包時未自動修改.csproj
文件以添加條目時,才需要此步驟。 請參閱https://github.com/aspnet/EntityFramework/issues/7358 。
恢復軟件包:
dotnet restore
現在,檢查您的 dotnet ef dbcontext scaffold 命令。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.