2011-08-25 9 views
12

He usado EntityFramework como ORM en mis proyectos y no tengo ningún problema en el uso de esta tecnología. Escuché que EntityFramework crea un proxy. Quiero saber QUÉ proxy crea este ORM? ¿Que hace? Y, cuando EF lo crea? En otras palabras, ¿cuál es el significado del término "proxy" que se utiliza con frecuencia en los temas de ORM?¿Cuál es el significado del proxy en EntityFramework?

Cualquier ayuda será útil.

Gracias de antemano.

+1

EF no siempre crear proxies. Puede desactivarlo, lo que puede hacer si tiene muchas ganas, o si serializa las entidades (por ejemplo, para usar en WCF). – Kit

+0

Acepté el proporcionado por Jonas, pero quiero escuchar más de todos los expertos. – saber

Respuesta

23

Un proxy en el mundo ORM es un tipo generado automáticamente que hereda de su tipo de objeto de dominio. El proxy representa una instancia que aún no se ha rellenado con datos de la base de datos, pero solo conoce su propia ID. Cuando se accede a una propiedad que está mapeada en la base de datos, la subclase proxy llevará a cabo la carga desde la base de datos, de modo que la carga sea transparente para el código del cliente.

Los apoderados generalmente se crean cuando tiene una propiedad de relación entre dos entidades que se carga de forma perezosa. P.ej. cuando accede a la propiedad user.Address, lo que realmente se devuelve es un objeto proxy de Dirección. Solo cuando se accede a una propiedad de ese objeto (por ejemplo, user.Address.StreetName), se cargará el objeto de la Dirección propiamente dicha.

+0

Gracias Jonas. – saber

Cuestiones relacionadas