Estoy desarrollando una aplicación de Windows Forms (.Net 3.5, sin WPF) donde quiero ser capaz de mostrar las búsquedas de clave externa en un DataGridView de enlace de datos.WinForms enlace de datos y relaciones de clave externa
Un ejemplo del tipo de relación es que tengo una tabla de líneas de pedido. Las líneas de pedido tienen una relación de clave externa con productos y productos que a su vez tienen una relación de clave externa con los tipos de productos.
Me gustaría tener un DataGridView enlace de datos donde cada fila representa una Línea de orden, mostrando los productos y Producttype de la línea.
Los usuarios pueden agregar o editar líneas de pedido directamente a la cuadrícula y elegir el producto para la línea de pedido de una comboBoxColumn; esto debería actualizar la columna producttype, mostrando el tipo de producto para el producto seleccionado, en la misma fila.
Lo más cercano a un buen ajuste que he encontrado hasta ahora es introducir un objeto de dominio que representa un OrderLine luego obligar a la DataGridView a una colección de estos OrderLines. A continuación, agrego propiedades al objeto de la línea de pedido que exponen el producto y el tipo de producto, y realizo cambios notorios en los eventos modificados para mantener todo actualizado. En mi repositorio de orderline puedo luego conectar las asignaciones entre este objeto de orden y las tres tablas en mi base de datos.
Esto funciona para el lado de enlace de datos de las cosas, pero tener a mano el código todo lo que O-asignación en el depósito parece mal. Pensé que nHibernate sería capaz de ayudar con este cableado pero estoy luchando con las asignaciones a través de todas las claves externas; parecen funcionar bien (la búsqueda de claves externas para un producto de línea de pedido crea el objeto de producto correcto basado en la clave externa) hasta que intente hacer el enlace de datos, no puedo obtener las columnas de ID de datos para actualizar mi producto o los tipos de productos.
¿Mi enfoque general está en el estadio correcto? Si es así, ¿cuál es una buena solución para el problema de mapeo?
O, ¿hay una mejor solución a las filas de enlace de datos, incluyendo las búsquedas de clave externa que ni siquiera he considerado?
Gracias Garo - eso cubre muy bien lo que he encontrado. La única diferencia es que tengo una columna de clave externa, no una grilla. Voy a actualizar mi respuesta ganada también, dejando en claro exactamente lo que me estaba causando problemas - Creo que las razones por las que originalmente diagnostiqué erróneamente el problema pueden ser útiles –