Я ОЧЕНЬ новичок в 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' (отсутствует директива using или ссылка на сборку?)
- Не удалось найти тип или имя пространства имен 'DbSet' (отсутствует директива using или ссылка на сборку?)
Чего мне не хватает?
Ответы:
Я была такая же проблема. Оказывается, вам нужна ссылка EntityFramework.dll (а не System.Data.Entity).
Я только что вытащил его из приложения MvcMusicStore, которое вы можете загрузить с: http://mvcmusicstore.codeplex.com/
Это также полезный пример того, как использовать первоочередную структуру кода с MVC.
источник
Вам нужно сослаться на
System.Data.Entity
сборку для вашего проекта или установитьEntityFramework
пакет NuGet, который настроит все для вас.источник
References
элементе в проекте и выберитеAdd Reference...
. Затем на.NET
вкладке выберитеSystem.Data.Entity
. А если вы хотите использовать NuGet, щелкните правой кнопкой мыши наReferences
элементе, а затем выберитеAdd Library Package Reference...
и на вкладке Онлайн найдитеEntityFramework
.TOOLS > Library Package Manager > Package Manager Console
в VS2012 и набрал в команднойinstall-package EntityFramework
строке. Работал отлично.Просто быстрая заметка. Это DbContext, а не DBContext. то есть с строчной буквой «B». Я обнаружил это, потому что у меня была та же проблема, в то время как intelesense не работал, пока я не попытался ввести полное пространство имен System.Data.Entity ... и имя, и, наконец, он предложил вариант «b» в нижнем регистре: -
System.Data.Entity.DbContext
источник
У меня была такая же проблема с использованием VS2010. Я знаю, что это не совсем ответ. Я просто подумал, что это может кому-то помочь. Я решил это, используя полное имя для DBContext.
Вместо того
я использовал
и перестроил проект. Внезапно VS был счастлив, и я даже смог удалить полное имя и просто использовать DBContext.
источник
У меня была такая же проблема ... Установка EF из консоли диспетчера пакетов работала для меня
команда была:
Install-Package EntityFramework
источник
Если ваш компилятор не распознает
удостовериться
в вашем файле .csproj у вас есть следующая ссылка
внутри элемента
в котором хранятся ссылки на другие сборки.
источник
У меня была такая же проблема .. У меня VS2010 экспресс ..
(Примечание: если вы видите эту проблему, попробуйте проверить ссылки на EntityFramework.dll .. Может быть, она отсутствует.)
Следующее решило это для меня.
Я установил последнее обновление MVC 3 Tools,
затем я установил EntityFramework 4.1
или с помощью NUGet, т.е. с помощью Visual Studio 2010 Express (Инструменты-> Диспетчер пакетов библиотеки -> Добавить ссылку на пакет библиотеки -> Выбрать онлайн -> EntityFramework)
Странно, что это не сработало ... Так что мне пришлось вручную добавить ссылку на "EntityFramework.dll",
попробуйте выполнить поиск для DLL .. может быть здесь
"C: \ Program Files (x86) \ Ссылочные сборки \ Microsoft \ Framework.NETFramework \ v4.0 \»
Если он у вас уже есть ... просто добавьте ссылку .net.
Примечание. Если вы используете NuGet, он создает папку «packages» рядом с вашим каталогом Solution. В ней вы найдете папку «EntityFramework.4.1.10331.0». В папке «Libs» вы найдете «EntityFramework.dll».
Добавьте ссылку на него с помощью вкладки «Обзор» и выберите вышеупомянутую DLL.
источник
Я использую Visual Studio 2010 Express и добавляю ссылку, чтобы
C:\Program Files\Microsoft ADO.NET Entity Framework 4.1\Binaries\EntityFramework.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, и в случае необходимости вы получите ссылку.
источник
Ваш проект не может разрешить классы EntityFramework, пока вы не добавите его в свой проект. Для добавления поддержки EntityFramework необходимо выполнить следующие действия: Инструменты-> Диспетчер пакетов Nuget -> Управление пакетом Nuget для решения. EntityFramework Показывает последнюю стабильную версию EntityFramework. в настоящее время 6.1.3 является последней версией. Установите его для выбранного проекта.
источник
Скачать http://www.dll-found.com/download/e/EntityFramework.dll
Вставьте его (для x86)
Затем щелкните правой кнопкой мыши на проекте -> добавить ссылку -> выберите EntityFramework
Bingo ......
источник
Visual Studio Express SP1 Щелкните правой кнопкой мыши в обозревателе решений> Ссылки> Добавить ссылку на пакет библиотеки> EntityFramework
источник
Вместо этого используйте CTP5 - это более новая версия с некоторыми изменениями в API. Вы должны добавить ссылку на EntityFramework.dll, которая установлена в каталоге CTP - по умолчанию: c: \ Program Files \ Microsoft ADO.NET Entity Framework Feature CTP5 \ Binaries \ 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 по некоторым причинам.
Проблемы решены. Теперь у меня есть ссылки на EntityFramework и System.Data.Entity.
источник
У меня была такая же проблема. Мне пришлось переписать «DBContext» после добавления ссылки на entityframework, и это решило проблему.
это означает, что Visual studio не смогла автоматически распознать класс и ждала его повторного набора. поэтому лучше сначала добавить ссылку, а затем реализовать код. VS 2013 - последний использованный
источник
Мне пришлось сначала удалить EntityFramework (пакет деинсталляции EntityFramework (очевидно, без учета регистра)), а затем установить его снова (Install-package EntityFramework) через консоль PM
источник
У меня возникла эта проблема, прочитайте приведенный выше ответ и загрузите entityframework.ddl, но обнаружил, что на него ссылаются alreadt. Поэтому я добавил пространство имен, и проблема была решена
использование System.Data.Entity;
Я использую Visual Studio 2010, SP1 установлен
источник
сославшись на entityframework.dll, оба system.data.entity работали.
источник
У меня была та же ошибка, но проблема была просто случайной проблемой с моей моделью.
Я случайно положил ...
... внутри класса модели.
источник
В качестве альтернативного пути вы можете пойти ЗДЕСЬ - инструкция, как установить любую необходимую DLL.
Или вы можете скачать NuGet и управлять им из VS
источник
Щелкните правой кнопкой мыши по ссылке и перейдите к управлению пакетами NuGet, затем выберите онлайн все, затем источник пакета NuGet в текстовом поле поиска введите Entity Framework и установите его.
источник
1) Удаление Entity Framework из всех проектов
2) Перезапустите Visual Studio.
3) Переустановка на все необходимые проекты
и это начало работать
источник
В некоторых случаях вы можете ссылаться на все, что вам нужно, и вы даже можете перейти к определению, нажав F12 в классе DbContext, который приведет вас в пространство имен System.Data.Entity, но вы все равно получите это неприятное предупреждение компилятора. Убедитесь, что Target Framework вашего проекта и версия Entity Framework, которую вы используете, совпадают. Перейдите в Project-> Properties-> Tab приложения. Измените Target Framework (не могу точно сказать, какой из них поможет методом проб и ошибок). Просто мои два цента.
источник
Я также раздражался от этой проблемы много раз и, наконец, нашел решение. Перейдите в файл edmx-> Обновить модель из базы данных-> Обновить-> Готово. Чистое решение-> Восстановить решение
источник
вы можете попробовать на консоли диспетчера пакетов
PM> EntityFrameWork \ enable-migrations
источник
Как и другие предложили:
Посмотрите ниже и посмотрите, можете ли вы сказать мне, что не так:
public class PanelLengthContext : DBContext { }
??!Убедитесь, что имя класса не написано с ошибкой - (чувствительность к регистру)!
DbContext
это правильное написание.public class PanelLengthContext : DbContext {}
НТН
источник
У меня та же проблема, что и у вас, я не могу реализовать ее в классе Controller, пока она работает, когда я помещаю ее в класс модели. Добавьте эти коды в верхней части вашего класса контроллера
источник
Я столкнулся с той же проблемой, а затем я добавил пространство имен
После добавления работает нормально
Попробуйте это может помочь вам решить вашу проблему
и перед этим установите платформу сущностей из Nuget Manager
источник