5

Considero que la gente de MS es mucho más inteligente que yo. Estaba intentando construir/probar un repositorio que casi sigue el enfoque this, excepto que quiero acoplar libremente la dependencia ObjectContext dentro del repositorio. He encontrado que con el fin de hacer desacoplar esto necesito para saltar un montón de aros como se muestra en this article.Even este enfoque es difícil de trabajar cuando¿Por qué la clase ObjectContext no se deriva de alguna interfaz?

  1. Usted tiene un edmx a partir de una base de datos existente
  2. Tiene un repositorio genérico construido alrededor de la interfaz ObjectContext y IObjectSet
  3. Durante la prueba unitaria, quiere falsificar este contexto de objeto y mantener todas las operaciones en la memoria. Piensa en probar repositorios.

Ahora la verdadera pregunta, ¿por qué los creadores de ObjectContext decidieron no tener IObjectContext?

Espero que mi pregunta tenga sentido, me alegrará si alguien puede probar que no y me muestra el camino.

¡Gracias de antemano!

+1

Solo quiero señalar que dado que en EF4 todo se basa en la generación de código a partir de plantillas, es bastante fácil personalizar su plantilla para que emita una interfaz que su ObjectContext puede implementar. –

+0

Tu pregunta tiene sentido, pero tengo miedo de que sea una pregunta para MS. –

+0

@Alex Paven: si hay algún enlace útil que pueda compartir conmigo, le estaría muy agradecido. – Perpetualcoder

Respuesta

5

Dado que el contexto es una clase parcial, usted puede agregar fácilmente una interfaz para que en un archivo separado: public partial class YourContext : IMyCustomInterface, y se puede poner en IMyCustomInterface ninguna firma que desee utilizar de la ObjectContext generado.

O podría ir sobre la (más) manera recomendada, que es abstraer más allá de ObjectContext en Repositorios como en this blog post (toda la serie de publicaciones es interesante y relevante) o this one.

+0

+1, especialmente para recordarme que 'YourContext' es' partial' :-). –

Cuestiones relacionadas