The type or namespace name 'DbContext' could not be found

Chris picture Chris · Apr 21, 2011 · Viewed 274.7k times · Source

I am VERY new to ASP.NET MVC (3) and am having a hard time resolving a build error in Visual Studio:

The type or namespace name 'DbContext' could not be found (are you missing a using directive or an assembly reference?)

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; }
    }
}

The two errors I am getting are:

  • The type or namespace name 'DbContext' could not be found (are you missing a using directive or an assembly reference?)
  • The type or namespace name 'DbSet' could not be found (are you missing a using directive or an assembly reference?)

What am I missing?

Answer

Shaz picture Shaz · May 18, 2011

I had the same issue. Turns out, you need the EntityFramework.dll reference (and not System.Data.Entity).

I just pulled it from the MvcMusicStore application which you can download from: http://mvcmusicstore.codeplex.com/

It's also a useful example of how to use entity framework code-first with MVC.