2012-06-14 2 views
5

Я обновил свой EntityModel до версии 4.3, используя NuGet.«ObjectContext» не содержит определения для «Entry» и не используется метод расширения «Entry»

Теперь я хочу изменить мой EntityObject.State, но он не может найти способ .Entry().

Текущее состояние: Deleted.

Это то, что я хочу сделать:

someObjectContext.Entry(someEntityObject).State = EntityState.Unchanged;

В РЕФЕРЕНТЫ к EntityFramework и EntityFramework.Extended добавляются.

Итак, что мне не хватает?

EDIT

Мой NuGet выход:

PM> Install-Package EntityFramework -Version 4.3.1 
'EntityFramework 4.3.1' already installed. 
Data already has a reference to 'EntityFramework 4.3.1'. 

ответ

13

Вы используете ObjectContext, который не имеет метод Entry. Вам нужно будет использовать DbContext, который является оберткой вокруг ObjectContext с дополнительными методами, добавленными в EF 4.3 4.1 (исправление благодаря Slauma), насколько я помню, также есть способ извлечь ObjectContext из DbContext при необходимости:

ObjectContext context = ((IObjectContextAdapter)yourDbContext).ObjectContext; 

Вот наоборот:

DbContext context = new DbContext(yourObjectContext, true); //or false, depends what you want 

Вот link конструктору.

+0

добавлен в EF 4.1 ... – Slauma

+0

@Slauma Спасибо за исправление, редактирование сейчас ... :) –

+0

@ Trustme-I'maDoctor Спасибо за помощь. Работайте отлично! знак равно – Willem

Смежные вопросы