Estas un poco sonado, la mejor forma de hacerlo sería utilizar esa tabla como tabla de HiLo, y utilizar bigint = int64 = long. Tal vez con un bajo Hi, pero ahí como que me pierdo en la teoría.
Creo que para hacer eso, vas a tener que heredar TableHiLoGenerator y pisar algunos métodos. Te recomiendo mirar este, que hizo algo parecido, pero en vez de tener row por entity, tenia column por cada entity.. pero a los fines es parecido lo que deberías hacer: http://stackoverflow.com/questions/1345754/nhibernate-hilo-new-column-per-entity-and-hilo-catches El 20 de mayo de 2010 11:39, Juan Cuello <[email protected]> escribió: > El tipo es INT: > > CREATE TABLE [dbo].[C_Identificador] ( > [taula] [varchar] (40) COLLATE > SQL_Latin1_General_CP1_CI_AS NOT NULL , > [comptador] [int] NOT NULL > ) ON [PRIMARY] > > Mejor no tener demasiados huecos, aunque el id es interno. > > > On 20 mayo, 16:33, José F. Romaniello <[email protected]> wrote: > > Que tipo de dato es int o bigint? > > Podes tener huecos grandes en la numeración?, > > es decir..... que para una tabla saltes del 1000 al 3000 por decir? > > > > El 20 de mayo de 2010 11:31, Juan Cuello <[email protected]> > escribió: > > > > > > > > > > > > > Como harías la misma funcionalidad con esa tabla tal cual? > > > > > Me tengo que ceñir a esa tabla... > > > > > On 20 mayo, 15:51, José F. Romaniello <[email protected]> wrote: > > > > hereda la clase TableGenerator, y llama al storeprocedure desde ahí, > > > usando > > > > ado.net puro. > > >http://nhforge.org/wikis/howtonh/creating-a-custom-id-generator-for-n. > .. > > > > > > Cuidado por que ese store procedure es feo, y ES un cuello de > botella. > > > > Es un cuello de botella por que cada vez que se llama se tiene que > > > bloquear > > > > ese registro en el peor de los casos de bloqueara la página o tabla > según > > > el > > > > motor, hasta que termine la transacción. Altamente no recomendable. > > > > > > El 20 de mayo de 2010 09:00, Juan Cuello <[email protected]> > > > escribió: > > > > > > > Hola, > > > > > > > Resulta que en un proyecto que tengo que hacer la clave primaria se > > > > > genera llamando al siguiente procedimiento almacenado de SQL > Server: > > > > > > > CREATE PROCEDURE dbo.nouID (@nom_taula varchar(50), @p_id int > OUTPUT) > > > > > AS > > > > > > > UPDATE C_Identificador > > > > > SET comptador = comptador + 1, > > > > > @p_id = comptador +1 > > > > > WHERE taula = @nom_taula > > > > > > > Return 1 > > > > > GO > > > > > > > Alguien podría decirme que tengo que poner en el mapeo? > > > > > > > <id name="ID" column="ID" type="System.Decimal" > unsaved-value="0"> > > > > > <generator class="..."/> > > > > > ..... > > > > > </id> > > > > > > > Muchas gracias > > > > > > > -- > > > > > Para escribir al Grupo, hágalo a esta dirección: > > > > > [email protected] > > > > > Para más, visite:http://groups.google.com/group/NHibernate-Hispano > > > > > > -- > > > > Para escribir al Grupo, hágalo a esta dirección: > > > [email protected] > > > > Para más, visite:http://groups.google.com/group/NHibernate-Hispano > > > > > -- > > > Para escribir al Grupo, hágalo a esta dirección: > > > [email protected] > > > Para más, visite:http://groups.google.com/group/NHibernate-Hispano > > > > -- > > Para escribir al Grupo, hágalo a esta dirección: > [email protected] > > Para más, visite:http://groups.google.com/group/NHibernate-Hispano > > -- > Para escribir al Grupo, hágalo a esta dirección: > [email protected] > Para más, visite: http://groups.google.com/group/NHibernate-Hispano > -- Para escribir al Grupo, hágalo a esta dirección: [email protected] Para más, visite: http://groups.google.com/group/NHibernate-Hispano
