web-dev-qa-db-ja.com

型または名前空間名 'DbContext'が見つかりませんでした

私はASP.NET MVC(3)の初心者で、Visual Studioでのビルドエラーの解決に苦労しています。

型または名前空間名 'DbContext'が見つかりませんでした(usingディレクティブまたはアセンブリ参照がありませんか?)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
using System.Data.Entity;

namespace MyProjectName.Models
{   
    public class MachineModel
    {
        // name
        [Required]
        [Display(Name = "Nom de la machine")]
        public string Name { get; set; }

        // IP
        [Required]
        [RegularExpression(@"(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)",
           ErrorMessage = "Donnez une adresse IPv4 valide.")]
        [Display(Name = "Adresse IP de la machine")]
        public string IP { get; set; }
    }

    public class MachineDbContext : DbContext
    {
        public DbSet<MachineModel> Machines{ get; set; }
    }
}

私が得ている2つのエラーは以下のとおりです。

  • 型または名前空間名 'DbContext'が見つかりませんでした(usingディレクティブまたはアセンブリ参照がありませんか?)
  • 型または名前空間名 'DbSet'が見つかりませんでした(usingディレクティブまたはアセンブリ参照がありませんか?)

何が足りないの?

138
Chris

私は同じ問題を抱えていました。実際には、EntityFramework.dll参照(System.Data.Entityではなく)が必要です。

私はちょうどあなたがからダウンロードすることができるMvcMusicStoreアプリケーションからそれを引っ張った: http://mvcmusicstore.codeplex.com/

また、MVCでエンティティーフレームワークをコードファーストで使用する方法の便利な例もあります。

196
Shaz

あなたはあなたのプロジェクトをSystem.Data.Entityassebmlyで参照するか、あなたのために全てをセットアップするEntityFramework NuGetパッケージをインストールする必要があります。

65
Darin Dimitrov

ちょっとだけメモ。 DBContextではなくDbContextです。すなわち、小文字の 'B'が付きます。私はこれを発見しました。完全な名前空間System.Data.Entity ...と名前を入力して最後に小文字の 'b'オプションを提案するまでintelesenseが動作していなかったときに同じ問題があったためです。

System.Data.Entity.DbContext

14
John Thompson

私はVS2010を使用して同じ問題を抱えていた。私はこれが本当に答えではないことを知っています。私はちょうどそれが誰かを助けるかもしれないと思った。 DBContextの完全修飾名を使用して解決しました。

の代わりに

public class MachineDbContext : DbContext

私が使った

public class MachineDbContext : System.Data.Entity.DbContext

そしてプロジェクトを再構築しました。突然VSは幸せになりました、そして私は完全修飾名を削除することさえでき、そしてただDBContextを使うことさえできました。

9
cab0

私は同じ問題を抱えていた...パッケージマネージャコンソールからEFをインストールすると私のために働いた

コマンドは次のとおりです。Install-Package EntityFramework

7
Felipe Skinner

私はVisual Studio 2010 Expressを使用しており、C:\Program Files\Microsoft ADO.NET Entity Framework 4.1\Binaries\EntityFramework.dllへの参照を追加して問題を解決しました。

4
ASHISH

私は同じ問題を抱えていました。

(注:この問題が発生した場合は、EntityFramework.dllへの参照を確認してください。存在しない場合もあります。)

以下は私のためにそれを解決しました。

私は最新のものをインストールしました MVC 3 Tools Update
それから私はインストールしました EntityFramework 4.1
またはNUGetを使用するVisual Studio 2010 Expressでの操作([ツール] - > [ライブラリパッケージマネージャ] - > [ライブラリパッケージ参照の追加] - > [オンライン選択] - > [EntityFramework])

奇妙なことにそれはうまくいきませんでした。だから私は手動で "EntityFramework.dll"への参照を追加しなければなりませんでした
dllを検索してみてください。
"C:¥Program Files(x86)¥Reference Assemblies¥Microsoft¥Framework.NETFramework¥v4.0¥"

すでにそれを持っている場合は、「。net」参照を追加してください。

注:NuGetを使用している場合は、Solutionディレクトリの横に "packages"というフォルダが作成されます。その中に "EntityFramework.4.1.10331.0"フォルダがあります。 "Libs"フォルダに "EntityFramework.dll"があります。
参照を追加 [参照]タブを使用して、上記のdllを選択します。

Snap for the same

4
Amitd

コンパイラが認識しない場合

  • System.Data.Entity.Infrastructure
  • DbContext
  • DbSet
  • ら、

確認してください

  1. あなたのEntity Framework 4.1があなたのマシンにインストールされている。
  2. .csprojファイルには、次の参照があります。

     <参照Include = "EntityFramework、バージョン= 4.1.0.0、カルチャ=ニュートラル、PublicKeyToken = b77a5c561934e089、processorArchitecture = MSIL" /> 
    

    要素内

     <ItemGroup> 
     ... 
     </ItemGroup> 
    

    それは他のアセンブリへの参照を収容します。

3
user669226

ステップバイステップの説明については、この新しいMVC/EFチュートリアルシリーズを参照してください。 http://www.asp.net/entity-framework/tutorials/creating-an-entity-framework-data-model-for -an-asp-net-mvc-application このチュートリアルでは、最新のMVC 3 Tools Updateがインストールされていることを前提にしており、まだインストールしていない場合はリンクを提供します。

3
tdykstra

これはとても便利です。

  1. ソリューションエクスプローラーでProjectNAmeプロジェクトを選択します。
  2. Toolsメニューから、サブメニューを持つLibrary Package Managerを選択します。
  3. サブメニューから[パッケージマネージャコンソール]を選択します。
  4. コンソールのPMプロンプトでinstall-package EntityFrameworkと入力し、Enterキーを押します。
3
BehranG BinA

CTP5 を使用してください。代わりに、APIにいくつかの変更を加えた新しいバージョンです。あなたはCTPディレクトリにインストールされているEntityFramework.dllへの参照を追加する必要があります - デフォルトは以下のとおりです。c:¥Program Files¥Microsoft ADO.NET Entity Frameworkの機能64ビットシステムでは、Program Files(x86)に配置されます。

2
John

ダウンロード http://www.dll-found.com/download/e/EntityFramework.dll

貼り付けます(x86の場合)

C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\

次にプロジェクトを右クリック - >参照を追加 - > EntityFrameworkを選択

ビンゴ......

2
Sanoop

これは私がコードを分岐したときに起こりました。それを修正するために、私はVisual Studioで私のプロジェクトを右クリックし、manage Nu-get packagesを選択し、EntityFrameworkをアンインストールし、そしてそれを再インストールしました。問題が解決しました

2
Neil

私は同じ問題を抱えていた。私はentityframeworkへの参照を追加した後に "DBContext"を書き直さなければならず、それは問題を解決した。
これは、Visual Studioがクラスを自動的に認識できず、クラスが再入力されるのを待っていたことを意味します。そのため、最初に参照を追加してからコードを実装するのが最善です。 VS 2013 - 究極の中古

2
user2169532

Visual Studio Express SP1ソリューションエクスプローラー>参照設定>ライブラリパッケージ参照の追加> EntityFrameworkを右クリックします。

2
mesteru_vali

プロジェクトは、EntityFrameworkクラスをプロジェクトに追加しないと解決できません。 EntityFrameworkサポートを追加するには、次の手順を実行する必要があります。[ツール] - > [Nugetパッケージマネージャ] - > [ソリューションを参照するためのNugetパッケージの管理] EntityFramework最新の安定したEntityFrameworkバージョンを表示します。現在6.1.3が最新バージョン選択したプロジェクト用にインストールします。

2
Shubham Tiwari

私はちょうどこの問題を抱えていました、そして、他の解決策のどれも私のために働きませんでした。私はVisual Studio 2010を使用していて、私のソリューションには2つのプロジェクトがあります。UIProjectとDataAccessProjectです。 UIProjectはDataAccessProjectへの参照を持ちます。

私のUIProjectは.Net Framework 4をターゲットにしていましたが、私のDataAccessProjectは何らかの理由で.Net Framework 3.5をターゲットにしていました。

  • 両方のプロジェクトを.Net Framework 4をターゲットにするように変更しました
  • アンインストールしてからEntity Framework NuGetパッケージを再インストールしました。

問題は解決しました。今私はEntityFrameworkとSystem.Data.Entityの両方への参照を持っています

2
MoMo

最初にEntityFrameworkをアンインストールし(アンインストールパッケージEntityFramework(大文字と小文字は区別されません))、その後PMコンソールを使用して再度インストールします(Install-package EntityFramework)。

2
Mpilo Z

参照を右クリックしてNuGetパッケージの管理に移動し、次にonline allを選択してから、検索テキストボックスタイプEntity FrameworkでNuGetパッケージソースを選択してインストールします。

1
kidistB

私は同じエラーがありましたが、問題は私のモデルに関する単なる偶然の問題でした。

誤って入れて….

public class MyModelDBContext : Context
{
 public DBSet<MyModel> MyModels { get; set; }
}

...モデルクラスの内側.

1
Jason Geiger

私はこの問題を抱えていて、上記の答えを読んでentityframework.ddlをダウンロードしましたが、すでに参照されていることがわかりました。名前空間を追加して問題を解決しました

system.Data.Entityを使用します。

Visual Studio 2010 SP1をインストールしています。

1)AllプロジェクトからEntity Frameworkをアンインストールする

2)Visual Studioを再起動します

3)必要なすべてのプロジェクトへの再インストール

そしてそれは働き始めました

1
Moji

別の方法としてあなたは行くことができます HERE - 指示どのように必要なdllをインストールするか。

または NuGet をダウンロードしてVSから管理することもできます。

1
gbk

私はまたこの問題から何度もイライラしてようやく解決策を見つけました。クリーンソリューション - >ソリューションの再構築

1
Aayush Verma

あなたが必要とするすべてを参照する場合があるかもしれません、そしてSystem.Data.Entity名前空間に連れて行くDbContextクラスの上でF12を押すことによって定義に行くことさえできます、しかしあなたはまだこの厄介なコンパイラ警告を得ます。プロジェクトのターゲットフレームワークと使用しているEntity Frameworkのバージョンが一致していることを確認してください。 [プロジェクト] - > [プロパティ] - > [アプリケーション]タブに移動します。ターゲットフレームワークを変更します(試行錯誤がどれを助けるのか正確には言えません)。たった2セントです。

1

両方system.data.entityが機能したentityframework.dllを参照した。

1
meol

私はあなたと同じ問題を抱えています、私がそれをモデルクラスに入れるときそれが働く間、私はそれをControllerクラスに実装することができません。これらのコードをコントローラクラスの一番上に追加します

 using TimeSheetManagementSystem.Data;
 using Microsoft.Extensions.Configuration;
 using Microsoft.AspNetCore.Identity.EntityFrameworkCore;
 using Microsoft.EntityFrameworkCore;
 using Newtonsoft.Json;
0
JApple

他の人が示唆しているように:

  1. 正しい参照とディレクティブを追加してください。それでもまだうまくいきませんか?多分あなたは私がしたのと同じ問題を抱えている:

以下を見て、あなたが私に何が間違っているのか教えてくれるかどうか確かめてください

public class PanelLengthContext : DBContext { }??!

クラス名がスペルミスでないことを確認してください - (大文字と小文字を区別する)

  • DbContextは正しいスペルです。
  • これはどのように見えるべきかです:
  • つづりを確認してください。私のようにあなたの人生の20分を無駄にしないでください。 public class PanelLengthContext : DbContext {}

HTH

0
BKSpurgeon

私は同じ問題に直面していると私は名前空間を追加しました

using Practiceusingentityframework.Models;

追加した後正常に動作する

これを試してみるとあなたの問題を解決するのに役立つかもしれません

その前にNuget Managerからエンティティフレームワークをインストールします

0
Aravindhan R

あなたはパッケージマネージャコンソールで試すことができます

PM> EntityFrameWork\enable-migrations

0
Michael Felina