web-dev-qa-db-ja.com

EntityFrameworkCoreは名前空間Microsoftに存在しません

このチュートリアルをここで説明しようとしています。

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ステートメントをファイルに追加すると、タイトルに記載されているエラーが発生します。なぜこれが起こっているのでしょうか?

19
RyeGuy

私はこの問題を次の方法で解決しました:

(1)ソリューションエクスプローラーでプロジェクトを右クリック

(2)プロジェクトのアンロードをクリック

(3)[.csprojの編集]をクリックし、EFへのパッケージ参照があるかどうかを確認します。

(4)ソリューションエクスプローラーでプロジェクトを再度右クリック

(5)次に、プロジェクトのリロードをクリックしました

EntityFrameworkCoreを認識し、ビルドエラーがなくなりました

34
RyeGuy

Microsoft によると、必要なNugetパッケージを逃しました。合計3つのパッケージをインストールする必要がありますが、私の場合、次のように2つのパッケージしか必要ありません。

  • Microsoft.EntityFrameworkCore.SqlServer
  • Microsoft.EntityFrameworkCore.Tools

これで問題が解決することを願っています。

4
Nidust

次のコードを 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などが含まれます

3
kiwi7

NuGetブラウザーに移動し、Microsoft.EntityFrameworkCoreをインストールします。

3
Adnan Shafiq

ビジュアルコード:

Ctrl + Shift + P => OmniSharpを再起動

1
Valeriy Baditsa

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>`
0
Dano
  1. ビジュアルスタジオのツールに移動"NuGetパッケージマネージャー"パッケージマネージャーコンソール
  2. タイプ->

    インストールパッケージMicrosoft.entityframeworkcore.sqlserver

0

.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" />
0
sarn

Entity Frameworkのバージョンを6.2から6.0に下げる必要がありました

0
Mehdi Souregi