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

Responder a