Entity Framework 4.1, не можете найти метод Load ()? - PullRequest
6 голосов
/ 24 апреля 2011

Хорошо, я собираюсь разбить мою клавиатуру молотком по этому поводу. Я решил поиграть с EF на этих выходных и начал проект в 4.0. Я обнаружил, что 4.1 вышел, поэтому я загружаю и устанавливаю пакет.

Вообразите мое удивление, когда я использую метод Load () в dbExtensions, и он не может его найти. Поэтому я добавляю ссылку на двоичный файл EntityFramework, созданный установщиком, удаляю ссылку System.Data.Entity из проекта, перестраиваю и выдает

"Тип 'System.Data.Objects.ObjectContext' является определяется в сборке, которая не ссылки. Вы должны добавить ссылку сборке 'System.Data.Entity, Версия = 4.0.0.0, Культура = нейтральная, PublicKeyToken = b77a5c561934e089. "

Я пытался восстановить свою модель, я пытался удалить вещи, я пытался напрямую ссылаться на 4.1 через использование. Ничего не работает.

Я явно упускаю что-то простое. Как, черт возьми, я говорю Visual Studio, чтобы использовать 4.1 Framework ?? !!

Ответы [ 5 ]

28 голосов
/ 08 сентября 2011

Мне удалось найти отсутствующую функцию .Load (), добавив следующее:

using System.Data.Entity;
4 голосов
/ 24 апреля 2011

Entity Framework 4.1 не является отдельной версией.Ему по-прежнему требуется Entity Framework 4.0 и его сборка, поэтому вы не можете удалить System.Data.Entity.dll из ваших ссылок.Кроме того, EFv4.1 в основном касается нового API DbContext, поэтому, если вы не собираетесь переходить от объектов Entity к POCO и DbContext, вы не получите никакого преимущества, ссылаясь на EntityFramework.dll (кроме строго типизированного Include в IQueryable).

2 голосов
/ 21 февраля 2012

Добавить ссылку на System.Data.Entity.dll из:

GAC (вкладка .Net в диалоговом окне добавления ссылки)

или

C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Data.Entity.dll

1 голос
/ 05 июля 2011

У меня такая же проблема, и я до сих пор не знаю причину.

Наконец, я использую альтернативное решение:

var query = from d ...  
query.Load();

или

(DbSet)context.myentity).Load();

Пожалуйста, попробуйте.

0 голосов
/ 28 июня 2011

Пост Ладислава точен.Чтобы добавить немного больше деталей, в этом блоге команды ADO.Net объясняется, как правильно заменить генерацию кода в проекте EF 4.0 на EF 4.1.

Однако у меня есть похожая проблемапосле обновления до 4.1 и использования DbContext (включая некоторые другие функции) у меня также нет метода .Load ().Я думаю, что вы были в том же месте, где я до вы начали (без необходимости) возиться со ссылками.

Проверьте ссылку выше, дайте мне знать, если это поможет, и если вы найдетеРешение для отсутствующей функции .Load () обязательно и дайте нам знать.

...