2012-06-14 22 views
5

Actualicé mi EntityModel a la versión 4.3 usando NuGet.'ObjectContext' no contiene una definición para 'Entrada' y ningún método de extensión 'Entrada'

Ahora quiero cambiar mi EntityObject.State, pero no puedo encontrar el método .Entry().

El estado actual es Deleted.

Esto es lo que quiero hacer: se añaden

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

Los referances a ADO.NET Entity Framework y EntityFramework.Extended.

Entonces, ¿qué es lo que me falta?

EDITAR

Mi NuGet de salida:

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

Respuesta

13

Estás usando ObjectContext, que no tiene el método Entry. Tendría que usar DbContext, que es un contenedor alrededor de ObjectContext con métodos adicionales, agregado en EF 4.3 4.1 (corrección gracias a Slauma) por lo que recuerdo - también hay una manera de extraer ObjectContext de DbContext cuando sea necesario:

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

Aquí es al revés:

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

Aquí hay una link al constructor.

+0

añadido en EF 4.1 ... – Slauma

+0

@Slauma Gracias por la corrección, edición ahora ... :) –

+0

@ Trustme-I'maDoctor Gracias por la ayuda. Trabajo perfecto! =) – Willem

Cuestiones relacionadas