2011-09-06 40 views
12

Estoy utilizando ADO .NET Entity Framework para importar mi modelo desde una base de datos. Una tabla en mi archivo db tiene un montón de claves externas, todas con nombres abstractos, p. Ej. FKDevice132610.Nombres significativos para las propiedades de navegación utilizando Entity Framework

Cuando importo la tabla en mi modelo, muestra las propiedades de navegación para cada clave externa, sin embargo, se importan con nombres basados ​​en el nombre de la tabla a la que se vinculan. Si hay más de una clave externa en una determinada tabla, se agrega un número al final.

Ef model

En este caso es Devices1 ParentDevices y dispositivos2 es ChildDevices. ¿Hay alguna manera de que pueda ingresar esta información en mi clave externa (digamos usando la descripción o el nombre) para que Entity Framework importe nombres significativos para mis propiedades de navegación?

Respuesta

5

Como sé, actualmente no hay forma de hacerlo. Así es como funciona el diseñador actual. Lo que es aún peor cuando cambia el nombre de estas propiedades para corregir nombres actualizando el modelo desde la base de datos algunas veces sobrescribirá sus cambios.

Mejora de la nomenclatura propiedad de navegación se realiza un seguimiento de este elemento de trabajo - http://entityframework.codeplex.com/workitem/125

+3

Eso es cojo ... estúpido EF :( – link664

+3

En este caso no es un fallo de EF. Es un error del diseñador: puede usar EF sin diseñador ya sea usando el primer acercamiento de código o si quiere obtener el mejor resultado de EF por escribir mapeo XML manualmente. –

0

Se pregunta si una búsqueda en "modelBuilder.Conventions.Remove" lo llevará a una solución. Ojalá pudiera ser de más ayuda, pero recién estoy comenzando a explorar EF. Se topó con una situación similar cuando tenía varios campos que me remitían a la misma ID ... y no recuerdo cuál fue el trabajo.

+0

El modelador y el diseñador no tienen nada en común. Esas dos características se usan en escenarios completamente diferentes. –

0

Cuatro años más tarde ...
hasta que el equipo EF resuelve this issue, una posible solución podría consistir en analizar el archivo .edmx utilizando una herramienta externa y reemplace todos los textos comenzando por <NavigationProperty Name= por nombres de navegación más significativos.
Siendo XML, es extremadamente fácil de analizar y encontrar propiedades como multiplicidad, nombre FK, etc.

Cuestiones relacionadas