Mi opinión personal respecto a amarrarlo a una BD no la creo satisfactoria, a no ser que sea opcional, por experiencia te digo que eso trae sus dilemas, por ejemplo si usas un framework como nhibernate, etcs para la BD ya no puedes usarlo con estos componentes, porque se conectan independientes.
O lo pones como una alternativa o no, es mi opinión personal.
Hola, tal vez he escrito mal algo en alguna parte, pero toda la idea detrás del ORM es poder abstraer la conexión y la manipulación específica del SQL, osea, lo que se busca es no amarrar a ninguna base de datos tu aplicación. Hasta hoy esto se puede lograr con el ORM solo que hay que vincular los manejadores específicos de BD a tu aplicación pero esto no quiere decir que mientras programas estés pensando contra que BD estás trabajando, siempre estás usando clases.
Por lo tanto, podrías tener la misma aplicación (exactamente el mismo código) funcionando contra una u otra base de datos a una compilación de distancia. Esto se podría hacer dinamicamente con el uso de bpls y es uno de los temas que me gustaría tener resuelto en breve para que la misma aplicación funcione contra una u otra BD simplemente cambiando un archivo (bpl o dll).
No has pensado la posibilidad de Orientarlos a Clases, en vez de mostrar una tabla, mostrar la entidad de negocio que representa dicha tabla, me refiero a que visualizas ciertos atributos de una entidad, y a la hora de seleccionarla la coges completa.
Para darte una mejor idea, tengo en .Net un listView que se le adicionan objetos, y se visualizan del mismo las propiedades que deseo, es generico, sirve para cualquier entidad, hacen gran cantidad de validaciones de forma autónoma, que se ponen en el tiempo de diseño, y a la hora de ejecutar es tirar solo el código de la lógica necesaria, no más, en realidad son más componentes, los hice pensandolo para Delphi, pero por algunos percances de la vida los desarrollé sobre .Net.
Hoy con el ORM solo trabajas a través de clases. Cada clase representa una tabla y sus relaciones.
El código que se genera con el ORM hace que tengas propiedades públicas por cada campo de la BD, tengas propiedades que apuntan a otra Entidad (para relaciones 1 a 1) y Colecciones de entidades (para relaciones 1 a n).
Sería muy interesante poder tener un listview como el que mencionas... No veo problema para realizar algo parecido a lo que tienes en .NET para Delphi basándose en la información que expone cada clase sobre la tabla a la que mapea.