Si no me equivoco, usando subclass no puedo indicar la tabla a la cual quiero que mapee mi objeto, con lo que estaría usando la estrategia de Table per class Hierarchy, y me mapearia todas las clases concretas sobre la misma tabla y no es el objetivo.
El objetivo es usar una tabla por cada clase concreta, las cuales heredan todas de una misma interfaz, pero sino me equivoco aquí no puedo usar identity para que el SGBD, se encargue de generar mi clave primaria. En la cual no quiero que hayan saltos sino que sean números correlativos para cada una de mis tablas. ¿Es esto posible? y si podéis darme alguna guía ya que en la documentación no veo ejemplos sobre esto. Pensándolo bien el discriminador no seria necesario. Ya que yo podría hacer una query para obtener un objeto concreto con una consulta del tipo s.Get(typeof(ConcreteAnexo1)(1), cuando sepa que es de este tipo, en lugar de algo como esto s.Get(typeof(IAnexable)(1,"ConcreteAnexo1") Un saludo On 27 ene, 19:30, Fabio Maulo <[email protected]> wrote: > http://nhforge.org/doc/nh/en/index.html#mapping-declaration-subclass > que el campo discriminator sea parte de la PK no lo vas a encontrar ya que > no es la def. en ORM. > En ORM el POID es univoco adentro una gerarquia de clases o univoco en todo > el dominio así que no hace falta usar una clave compuesta para eso. > > El 27 de enero de 2010 14:03, Victor Mingueza > <[email protected]>escribió: > > > > > > > Hola Buenas a todos, > > > Quería saber si exista la posibilidad de usar esta opción en > > NHibernate, ya que en la documentación no he visto ningún ejemplo de > > como hacerlo y no me parece en principio una forma tan rara de > > realizar la herencia. > > > Os paso a explicar el caso para que quede un poco mas claro. Mi > > sistema permite que unos objetos en concretos sean Anexables a otros, > > es decir > > > Mi elemento A tiene una colección de objetos Anexos los cuales pueden > > ser del tipo ConcreteAnexo1, ConcreteAnexo2...los cuales implementan > > todos las interfaz Anexos que define una serie de propiedades comunes > > > Pero mis ConcreteAnexo no quiero que compartan el mismo identificador, > > es decir en la tabla ConcreteAnexo1 no quiero que hayan saltos en el > > Id, porque este se ha usado en un registro de ConcreteAnexo2. > > > Sino que la clave de mi table ConcreteAnexo1 fuera solo el > > identificador mas el campo discriminador que no sera parte de la clave > > primaria. Aunque NHibernate si use este discriminador primero para > > diferenciar entre las distintas tablas cuando se haga una consulta por > > un Id concreto evitando hacer la select de cada una de las tablas > > ConcreteAnexo. y por ultimo usar ambos campos la PK y Discriminador > > para diferenciar varios objetos de tipos concreto distintos. > > > Un saludo y gracias por vuestro tiempo. > > > -- > > Para escribir al Grupo, hágalo a esta dirección: > > [email protected] > > Para más, visite:http://groups.google.com/group/NHibernate-Hispano > > -- > Fabio Maulo -- Para escribir al Grupo, hágalo a esta dirección: [email protected] Para más, visite: http://groups.google.com/group/NHibernate-Hispano
