2008-12-03 14 views
7

¿Alguien sabe si es posible no utilizar la característica de propiedades de navegación de la entidad marco para las tablas vinculadas con una clave externa?* ¿No * usando propiedades de navegación con Entity Framework?

por ejemplo, si mi tabla de cliente tiene un AddressId, quiero que AddressId en mi modelo, no quiero que tenga una propiedad .Address. Pero hasta ahora no he podido averiguar cómo hacer esto.

+0

para aquellos que encuentran esto a través de la búsqueda ... esto fue hace bastante tiempo. Las versiones más recientes del marco de la entidad no tienen problemas con esto :-) –

+0

¿Estás seguro? Porque traté de hacer lo mismo: eliminé mis propiedades de navegación y dejé solo las escalares, pero una vez que actualicé el modelo, todas las propiedades de navegación serían restauradas. –

Respuesta

6

Claro, puedes hacer esto. Es solo que el diseñador no te ayudará mucho. Elimine la propiedad de navegación y agregue una propiedad escalar para AddressId. Funcionará, pero tendrá que tener cuidado al presionar Actualizar modelo en el diseñador, ya que puede tratar de "arreglar" las cosas por usted. Vale la pena acostumbrarse a editar EDMX; No está tan mal.

+0

¿otros recursos sobre la edición manual de edmx? –

+0

¿Qué, específicamente, estás buscando? Toda la documentación inicial de Entity Framework se trataba de editar manualmente los archivos XML, porque en ese momento no había un diseñador. Lo único que ha cambiado desde entonces es que los tres archivos separados se han rodado en un solo archivo EDMX. –

+0

¿Alguien sabe alguna solución para eliminar/ocultar las propiedades de navegación y evitar aún más su restauración con la actualización del modelo, o incluso 3 años después tengo que modificar el modelo manualmente? No me importa editar el modelo manualmente, pero ahora es realmente enorme, más fácil y más rápido de usar designer =) –

0

En el diseñador, puede configurar las propiedades de navegación como entidades de obtención/configuración privadas. Si bien seguirán siendo allí, porque Entity Framework (de forma predeterminada) realiza una carga diferida, en realidad no recuperará ningún dato de la base de datos en tiempo de ejecución. Y no reaparecerán la próxima vez que actualice el modelo desde la base de datos.

Cuestiones relacionadas