Ссылки на DBContext, DBSet‹› в Entity Framework

Я пытаюсь использовать функцию ADO.Net Codefirst последней версии Entity Framework 4.0. В рамках этого я установил Entity Framework CTP 4 от Microsoft и с использованием руководство Скотта, чтобы сначала создать модель. Внутри учебника указаны DBContext и DBSet<>. Может кто-нибудь сказать, какая ссылка будет использоваться для доступа к этому классу.

Я использовал следующие ссылки, однако для DBContext и DBSet<> ничего не происходит.

  • Система.Данные.Объект
  • Система.Данные.Сущность.Дизайн

person manu    schedule 04.02.2011    source источник


Ответы (7)


Вместо этого используйте CTP5. более новая версия с некоторыми изменениями в API. Вы должны добавить ссылку на EntityFramework.dll, которая установлена ​​в каталоге CTP — по умолчанию это: c:\Program Files\Microsoft ADO.NET Entity Framework Feature CTP5\Binaries\EntityFramework.dll для 32-битной системы. В 64-битной системе он будет помещен в Program Files (x86).

person Ladislav Mrnka    schedule 04.02.2011
comment
Не могли бы вы сказать, будет ли он поддерживать 64-битную версию .Net? - person manu; 04.02.2011
comment
Уже нет. Теперь вы просто используете nuget Install-Module entityframework - person Teun D; 15.01.2013
comment
@TeunD: Да, вы можете опубликовать это как отдельный ответ. Этот ответ был довольно верным для версии, заданной OP... - person Ladislav Mrnka; 15.01.2013
comment
Вместо того, чтобы ссылаться на entityframework.dll вручную, вы можете установить пакет EntityFramework из Nuget. - person Rowinson Gallego; 07.04.2013
comment
Сообщение старое... но теперь я думаю, что ссылка не работает. - person Sandy; 15.01.2014

Вы можете использовать диспетчер пакетов библиотек, если он у вас есть (он устанавливается автоматически вместе с MVC 3.0).

Внутри вашего проекта в Visual Studio 2010 перейдите к

Tools > Library Package Manager > Package Manager Console

Внутри вашего проекта в Visual Studio 2013 перейдите к

Tools > NuGet Package Manager > Package Manager Console

В консоли после приглашения PM> введите

install-package entityframework

Это установит пакет и добавит ссылку EntityFramework в ваш проект.

person Feckmore    schedule 03.04.2011
comment
Install-Package: не удалось найти пакет 'entityframework'В строке: 1 char: 1 ... есть идеи, почему? - person brntsllvn; 07.01.2016
comment
Глядя на диспетчер пакетов NuGet-Solution, я вижу, что у меня установлен EntityFramework (v6.0.2)... но DbContext все еще не найден. Любая помощь будет здорово. - person brntsllvn; 07.01.2016

Используйте «DbContext» вместо «DBContext» и «DbSet» против «DBSet». Проблема в чувствительности к регистру.

person Thomas Edmondson    schedule 11.02.2011
comment
Томас, я только что указал код, а не копировал и не вставлял его. Я использовал правильный регистр в своем коде, поскольку он был скопирован из оригинального учебника. Однако спасибо, что сообщили мне, что ключевые слова указаны в неправильном регистре. Ваше здоровье. - person manu; 11.02.2011
comment
вот и все... я сделал ошибку. - person Bimal Das; 01.02.2016

Чтобы добавить EF в свой проект, используйте консоль диспетчера пакетов и введите команду:

Install-Package EntityFramework

Вы не должны напрямую ссылаться на установленное местоположение DLL, как указано в другом ответе.

person Josh M.    schedule 26.04.2013

В сообщении блога упоминается сборка:

Используемые выше классы DbContext и DbSet предоставляются как часть библиотеки EF4 Code-First. Вам потребуется добавить ссылку на сборку System.Data.Entity.CTP, которая установлена ​​в \Program Files\Microsoft ADO. Каталог .NET Entity Framework Feature CTP4\Binaries для ссылки на эти классы. Вы также можете добавить оператор пространства имен «using System.Data.Entity» вверху вашего файла класса «NerdDinners».

Однако я считаю, что новый CTP5 включает в себя некоторые изменения в коде, поэтому я предлагаю вместо этого взглянуть на него.

person Yannick Motton    schedule 04.02.2011
comment
Не могли бы вы сказать, будет ли он поддерживать 64-битную версию .Net? - person manu; 04.02.2011
comment
Я не уверен, есть ли в CTP 64-битные сборки. Если нет, ваш проект должен быть ориентирован на x86. - person Yannick Motton; 04.02.2011

Я следовал учебному пособию MvcMusicStore (используя Mvc 4 вместо Mvc 3).

В части 4 я обнаружил, что у меня были проблемы с этим (http://www.asp.net/mvc/tutorials/mvc-music-store/mvc-music-store-part-4).

Когда я добавил следующую ссылку используя System.Data.Entity;, я получил следующую ошибку:

имя типа или пространства имен 'entity' не существует в пространстве имен 'system.data'

Решение @Fecklmore сработало для меня.

Откройте консоль диспетчера пакетов, выбрав «Инструменты» > «Диспетчер пакетов библиотек» > «Консоль диспетчера пакетов».

Затем введите следующее: Install-Package EntityFramework

Это установит EntityFramework (т.е. EF) в ваш проект и устранит указанную выше ошибку.

person Kyle Garrett    schedule 05.08.2013

если вы используете .NET 3.5, измените целевую платформу на .NET 4.0.

person Arek Bee    schedule 15.06.2011
comment
Действительно, спасибо @Arek Bee, я использовал .Net 4.0, однако по какой-то причине ссылки на Entity нет. Позже после установки CTP5 все стало нормально - person manu; 17.06.2011