Не удалось найти тип или имя пространства имен "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; }
}
}
две ошибки, которые я получаю:
- тип или имя пространства имен Не удалось найти "DbContext" (are у вас отсутствует директива using или ссылка на сборку?)
- тип или пространство имен имя в dbset' не удалось найти (are you отсутствует директива using или ссылка на сборку?)
что я упустил?
30 ответов
У меня была та же проблема. Оказывается, вам нужна EntityFramework.dll ссылка (а не система.Данные.Сущность.)
Я просто вытащил его из приложения MvcMusicStore, которое вы можете скачать с: http://mvcmusicstore.codeplex.com/
Это также полезный пример того, как использовать entity framework code-first с MVC.
необходимо указать System.Data.Entity
assebmly для вашего проекта или установить EntityFramework
пакет NuGet, который установит все для вас.
просто короткая заметка. Это DbContext, а не DBContext. т. е. с строчной буквой "B". Я обнаружил это, потому что у меня была та же проблема, пока intelesense не работал, пока я не попытался ввести полное имя space System.Данные.Сущность... и имя, и, наконец, он предложил вариант нижнего регистра "b": -
у меня была такая же проблема с использованием VS2010. Я знаю, что это не ответ. Я просто подумал, что это может кому-то помочь. Я решил это, используя полное имя для DBContext.
вместо
public class MachineDbContext : DbContext
Я
public class MachineDbContext : System.Data.Entity.DbContext
и перестроил проект. Внезапно VS был счастлив, и я даже смог удалить полное имя и просто использовать DBContext.
У меня была та же проблема... Установка EF из консоли диспетчера пакетов работала для меня
команда: Install-Package EntityFramework
У меня была та же проблема..У меня есть VS2010 express..
(Примечание: Если вы видите эту проблему, попробуйте проверить ссылки и EntityFramework.файл DLL. . Может быть, он отсутствует.)
следующее решило это для меня.
Я установил последнюю версию обновление инструментов MVC 3
затем я установил EntityFramework 4.1
или через
NUGet ie. с помощью Visual Studio 2010 Express
(Инструменты - >менеджер пакетов библиотеки - > добавить ссылку на пакет библиотеки - > Выберите Online - > EntityFramework)
странно, что это не сработало..поэтому мне пришлось вручную добавить ссылку на " EntityFramework.DLL-файл"
попробуйте выполнить поиск dll ..может быть здесь
"C:\Program файлы (x86)\ссылочные сборки\Microsoft\Framework.NETFramework\v4.0\"
Если у вас уже есть..просто добавьте ссылку ".net".
Примечание: Если вы используете NuGet, он создает папку "пакеты" вдоль стороны вашего каталога решений.
Вы найдете "И EntityFramework.4.1.10331.0 " папка внутри него.В папке" Libs " вы найдете
"И EntityFramework.файл DLL. "
добавить ссылку на него используя вкладку Обзор и выберите вышеуказанную dll.
для пошаговых инструкций см. эту новую серию учебников MVC / EF: http://www.asp.net/entity-framework/tutorials/creating-an-entity-framework-data-model-for-an-asp-net-mvc-application Учебник предполагает, что вы установили последнее обновление MVC 3 Tools и предоставляет ссылку, если вы этого не сделали.
Я использую Visual Studio 2010 express и добавляю ссылку на C:\Program Files\Microsoft ADO.NET Entity Framework 4.1\Binaries\EntityFramework.dll
решена проблема.
Это помогает очень удобно:
- выберите проект ProjectNAme в обозревателе решений.
- В меню Сервис выберите менеджер пакетов библиотеки, который имеет подменю.
- в подменю выберите консоль диспетчера пакетов.
- в командной строке консоли PM введите install-package EntityFramework затем нажмите enter.
Visual Studio Express SP1 Щелкните правой кнопкой мыши в обозревателе решений > ссылки > добавить ссылку на пакет библиотеки > EntityFramework
использовать CTP5 вместо этого это более новая версия с некоторыми изменениями в API. Вы должны добавить ссылку на EntityFramework.dll, который установлен в каталоге CTP-по умолчанию: c:\Program файлы\Microsoft ADO.NET функция Entity Framework CTP5\двоичные файлы\EntityFramework.DLL для 32-битной системы. В 64-битной системе он будет размещен в Program Files (x86).
Это случилось со мной, когда я попробовал код. Чтобы исправить это, я щелкнул Правой Кнопкой Мыши мой проект в Visual Studio, выбрал управление пакетами Nu-get, удалил EntityFramework, а затем повторно установил его. Проблема решена
У меня просто была эта проблема, и ни одно из других решений не работало для меня. Я использую Visual Studio 2010, и у меня есть два проекта в моем решении: UIProject и DataAccessProject. UIProject имеет ссылку на DataAccessProject.
мой UIProject был нацелен на .Net Framework 4, но мой DataAccessProject был нацелен на .Net Framework 3.5 по какой-то причине.
- Я изменил оба проекта на целевой .Net Framework 4
- удалил потом переустановите пакет NuGet Entity Framework.
проблемы решены. Теперь у меня есть ссылки как на EntityFramework, так и на System.Данные.Сущность
У меня была та же проблема.Мне пришлось переписать "DBContext" после добавления ссылки на entityframework, и это решило проблему.
это означает, что Visual studio не смогла автоматически распознать класс и дождалась его повторного ввода.
поэтому лучше всего сначала добавить ссылку, а затем реализовать код.
VS 2013-ultimate используется
Мне пришлось сначала удалить EntityFramework (Uninstall-package EntityFramework (по-видимому, не чувствительный к регистру)), а затем установить его снова (Install-package EntityFramework) через консоль PM
ваш проект не может разрешить классы EntityFramework, пока вы не добавите его в свой проект. Для добавления поддержки EntityFramework необходимо выполнить следующие действия: Инструменты - >менеджер пакетов Nuget - >управление пакетом Nuget для решения обзор и EntityFramework Он показывает последнюю стабильную версию EntityFramework. в настоящее время 6.1.3 это последняя версия Установки для выбранного проекта.
загрузить http://www.dll-found.com/download/e/EntityFramework.dll
вставить его в (для x86)
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\
Затем Направо нажмите на проект - > добавить ссылку - > выберите EntityFramework
Бинго......
У меня была эта проблема, прочитайте приведенный выше ответ и загрузите entityframework.ДДЛ, но обнаружил, что это уже ссылка. Поэтому я добавил пространство имен и проблема была решена
использование системы.Данные.Сущность;
Я использую Visual Studio 2010, SP1 установлен
У меня была та же ошибка, но проблема была просто случайной проблемой с моей моделью.
я случайно поставил...
public class MyModelDBContext : Context
{
public DBSet<MyModel> MyModels { get; set; }
}
...внутри класса модели.
щелкните правой кнопкой мыши ссылку и перейдите к управлению пакетами NuGet, затем выберите online all, затем источник пакета NuGet в текстовом поле поиска введите Entity Framework и установите его.
1) Удаление Entity Framework из все проекты
2) Перезапустите Visual Studio
3) переустановка на все необходимые проекты
и он начал работать
может быть случай, когда вы ссылаетесь на все, что вам нужно, и вы даже можете перейти к определению, нажав F12 в классе DbContext, который приведет вас к системе.Данные.Пространство имен сущностей, но вы все равно получаете это неприятное предупреждение компилятора. Убедитесь, что целевая платформа проекта и версия Entity Framework, которую вы используете, совпадают. Перейдите на вкладку проект->свойства->приложение. Измените целевую структуру (не могу точно сказать, какой из них, проб и ошибок поможет.). Только мои двое. центы.
Я также раздражаюсь от этой проблемы много раз и, наконец, найти решение.Перейдите в файл edmx - >обновить модель из базы данных - >обновить - >готово. Чистое Решение- > Перестроить Решение
как и другие предложили:
- добавить правильные ссылки и директивы. Но все равно не получается? Может быть, у вас та же проблема, что и у меня:
посмотрите ниже и посмотрите, можете ли вы сказать мне, что не так:
public class PanelLengthContext : DBContext { }
??!
убедитесь, что имя класса не написал - (чувствительность к регистру)!
-
DbContext
- это правильное написание. - вот как это должно смотри:
- проверить орфографию. не тратить 20 минут своей жизни, как я сделал.
public class PanelLengthContext : DbContext {}
HTH
У меня такая же проблема, как и у вас, я не могу реализовать ее в классе контроллера, пока она работает, когда я помещаю ее в класс модели. Добавьте эти коды в верхней части класса контроллера
using TimeSheetManagementSystem.Data;
using Microsoft.Extensions.Configuration;
using Microsoft.AspNetCore.Identity.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore;
using Newtonsoft.Json;
я столкнулся с той же проблемой, а затем я добавил пространство имен
using Practiceusingentityframework.Models;
после добавления он работает нормально
попробуйте это может помочь вам решить вашу проблему.
и перед этим установите Entity framework из NuGet Manager