Tengo dos tablas de SQL Server con claves principales (PK) y una clave externa (FK) que unen las dos tablas:columnas de dos tablas de bases de datos relacionadas en uno ASP.NET GridView con EntityDataSource
1) Table "Order"
OrderID, int, PK
AddressID, int, FK
...
2) Table "Address"
AddressID, int, PK
City, nvarchar(50)
...
Entonces he creado un Modelo de datos de entidad (ADO.NET) a partir de esas dos tablas. Ahora en mi página web (ASP.NET) coloco un GridView con EntityDataSource. En mi GridView quiero mostrar dos columnas:
- IDPedido
- City (perteneciente a ese fin y unidos por la tecla AddressID)
¿Cómo puedo hacer eso? Mi problema es: cuando configuro Entity Data Source, puedo seleccionar un "EntitySetName" que puede ser "Order" o "Address" pero no ambos, ni puedo seleccionar ningún tipo de relación. Si selecciono "orden" como EntitySetName continuación, en el GridView puedo añadir las columnas
- IDPedido
- Dirección
- Address.AddressID
Adición de la columna "Dirección" muestra las celdas vacías . Al agregar "OrderID" y "Address.AddressID", se muestran los ID esperados. ¿Pero cómo puedo agregar la "Ciudad" de la dirección relacionada a mi GridView?
¡Gracias por la ayuda con anticipación!
Editar: Aclaración:
El Marco de la entidad ha creado una "orden" de clase y una "dirección" clase correspondiente a las tablas de la base. La clase "Orden" tiene una referencia a un objeto "Dirección" como propiedad de navegación, correspondiente a la relación 1-n entre la tabla Dirección y Orden.
Básicamente quiero tener una columna en mi GridView que muestre Order.Address.City. He intentado agregar un campo enlazado con "Address.City" como campo de datos a GridView, pero da como resultado un error de tiempo de ejecución ("no such property ...").
Estaba haciendo un proyecto de ejemplo esta noche; esta respuesta fue muy útil al intentar configurar una construcción similar. Gracias. –
Ojalá pudiera hacer +1 en esta respuesta cada vez que vuelva a esta pregunta, especialmente si "usar un BoundField como columna ... NO es posible". –