Siguiendo los pasos de mi otro question about mocking DbContext.Set, tengo otra pregunta sobre burlarse de EF Code First.Burlarse o fingir DbEntityEntry o crear un nuevo DbEntityEntry
ahora tengo un método para mi actualización que se parece a:
if (entity == null)
throw new ArgumentNullException("entity");
Context.GetIDbSet<T>().Attach(entity);
Context.Entry(entity).State = EntityState.Modified;
Context.CommitChanges();
return entity;
Contexto es una interfaz de mi propia DbContext.
El problema que estoy corriendo a decir, ¿Cómo manejo el
Context.Entry(entity).State
.
He recorrido este código y funciona cuando tengo un DbContext real como la implementación de mi interfaz de contexto. Pero cuando pongo mi contexto falso allí, no sé cómo manejarlo.
No hay constructor para una clase DbEntityEntry, así que no puedo crear uno nuevo en mi contexto falso.
¿Alguien ha tenido éxito con burlarse o fingir DbEntityEntry en sus soluciones CodeFirst?
¿O existe una forma mejor de manejar los cambios de estado?
Gracias ... Me quedé atascado pensando "¿Cómo me burlo de la entrada?" Cuando no lo necesito, solo necesito burlarme de la funcionalidad modificada ... Estoy casi avergonzado de que ahora sea tan obvio. – taylonr
No se - nuestras vidas como desarrolladores están llenos de "duh!" momentos :-) –
+9000 Acabo de pasar una hora investigando cómo simular clases con ctors internos y clases internas. ¡Estaba siendo frustrado en cada vuelta y la solución es tan simple! Gracias tanto al que pregunta como al que responde –