このチュートリアルをここで説明しようとしています。
https://docs.Microsoft.com/en-us/aspnet/core/data/ef-mvc/intro
ただし、次のコマンドを使用してパッケージマネージャーコンソールにEntityFrameworkCoreを正常にインストールした後:
インストールパッケージMicrosoft.EntityFrameworkCore.SqlServer
その後、cmdでdotnet復元を正常に実行すると、プロジェクトはEntityFrameworkCoreを登録しません。 .csprojファイルで、次の行を確認できます
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="1.1.1" />
残念ながら、Microsoft.EntityFrameworkCoreを使用したusingステートメントをファイルに追加すると、タイトルに記載されているエラーが発生します。なぜこれが起こっているのでしょうか?
私はこの問題を次の方法で解決しました:
(1)ソリューションエクスプローラーでプロジェクトを右クリック
(2)プロジェクトのアンロードをクリック
(3)[.csprojの編集]をクリックし、EFへのパッケージ参照があるかどうかを確認します。
(4)ソリューションエクスプローラーでプロジェクトを再度右クリック
(5)次に、プロジェクトのリロードをクリックしました
EntityFrameworkCoreを認識し、ビルドエラーがなくなりました
Microsoft によると、必要なNugetパッケージを逃しました。合計3つのパッケージをインストールする必要がありますが、私の場合、次のように2つのパッケージしか必要ありません。
これで問題が解決することを願っています。
次のコードを https://github.com/aspnet/Docs/tree/master/aspnetcore/tutorials/first-web-api/sample/TodoApi からTodoApi.csprojにコピーすると、うまくいきました。
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<Folder Include="wwwroot\" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.0" />
</ItemGroup>
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.0" />
</ItemGroup>
</Project>
Microsoft.AspNetCore.Allは過剰になる可能性がありますが、EntityFrameworkCoreなどが含まれます
NuGetブラウザーに移動し、Microsoft.EntityFrameworkCoreをインストールします。
ビジュアルコード:
Ctrl + Shift + P => OmniSharpを再起動
Package.configファイルに関する他のコメントの1つから、ダブルチェックしています...どうやら、私の問題は、package.configファイルのtargetFramework = "net472"がプロジェクトの.Netバージョンと一致していないようです。プロジェクトは4.7.2を使用していますが、パッケージファイルは "471"であり、package.configのtargetFrameworkを "472"に更新して問題を解消しました:)
過去には、4.x.yが問題なく同じである限り、以前は.Netが4.x.yをすべて一致させることを望んでいるようです...
`<packages>
<package id="EntityFramework" version="6.2.0" targetFramework="net472" />
</packages>`
タイプ->
インストールパッケージMicrosoft.entityframeworkcore.sqlserver
.csprojファイルをクリーンアップして、次のようなものが表示されたら...
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.2.4">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
それを次のように変更します。
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.2.4" />
Entity Frameworkのバージョンを6.2から6.0に下げる必要がありました