Si, este esl hibernate.cfg.xml
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
<property
name="connection.provider">NHibernate.Connection.DriverConnectionProvider</
property>
<property name="dialect">NHibernate.Dialect.MsSql2005Dialect</
property>
<property
name="connection.driver_class">NHibernate.Driver.SqlClientDriver</
property>
<property name="connection.connection_string">Data
Source=localhost;Initial Catalog=MRGest;Integrated
Security=True;Application Name=HibernateConnection</property>
<property
name='proxyfactory.factory_class'>NHibernate.ByteCode.Castle.ProxyFactoryFactory,
NHibernate.ByteCode.Castle</property>
<property name="show_sql">true</property>
</session-factory>
</hibernate-configuration>
On 19 mar, 13:03, José F. Romaniello <[email protected]> wrote:
> podrías mostrar como estas configurando nhibernate?
> que dialect estas usando?
>
> 2011/3/19 Ezequiel Calderara <[email protected]>
>
> > Buenas a todos, soy nuevo en el grupo y nuevo con nHibernate.
> > Estuve buscando codigo de ejemplo e informacion sobre los generators
> > para ver que es lo que estoy haciendo mal.
>
> > Tengo la clase Brand, que se mapea con la Tabla Brand, la cual tiene
> > el campo id un int con identity(1,1) (MS SQL Server).
> > Segun leí debo utilizar un generator con la clase "identity" o
> > "native". Probé con ambos con los mismos resultados.
>
> > El caso mas simple es, tengo esta clase Brand:
> > =========================================
> > public class Brand
> > {
>
> > private int _id;
> > private string _name;
>
> > public Brand()
> > {
>
> > }
>
> > public virtual int Id
> > {
> > get { return _id; }
> > set { _id = value; }
> > }
>
> > public virtual string Name
> > {
> > get { return _name; }
> > set { _name = value; }
> > }
>
> > }//end Brand
> > =========================================
>
> > Que estoy mapeando contra esta tabla:
> > =========================================
> > CREATE TABLE [dbo].[Brand](
> > [id] [int] IDENTITY(1,1) NOT NULL,
> > [Name] [varchar](50) COLLATE Traditional_Spanish_CI_AS NOT NULL,
> > CONSTRAINT [PK_Brand] PRIMARY KEY CLUSTERED
> > (
> > [id] ASC
> > )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY
> > = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
> > ) ON [PRIMARY]
> > =========================================
>
> > Y Este es el archivo de mapping:
> > =========================================
> > <?xml version="1.0" encoding="utf-8" ?>
> > <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
> > assembly="MRGest.Domain" namespace="MRGest.Domain">
>
> > <class name="Brand" table="Brand">
> > <id name="Id" column="Id" type="int" unsaved-value="0">
> > <generator class="native"/>
> > </id>
> > <property name="Name" />
> > </class>
> > </hibernate-mapping>
> > =========================================
> > Y al momento de hacer el insert, me arroja esta excepcion:
> > =========================================
> > NHibernate.Exceptions.GenericADOException: could not insert:
> > [MRGest.Domain.Brand#0][SQL: INSERT INTO Brand (Name, Id) VALUES
> > (?, ?)] ---> System.Data.SqlClient.SqlException: Cannot insert
> > explicit value for identity column in table 'Brand' when
> > IDENTITY_INSERT is set to OFF.
> > en System.Data.SqlClient.SqlConnection.OnError(SqlException
> > exception, Boolean breakConnection)
> > en System.Data.SqlClient.SqlInternalConnection.OnError(SqlException
> > exception, Boolean breakConnection)
> > en
>
> > System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject
> > stateObj)
> > en System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior,
> > SqlCommand cmdHandler, SqlDataReader dataStream,
> > BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject
> > stateObj)
> > en
> > System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds,
> > RunBehavior runBehavior, String resetOptionsString)
> > en
> > System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior
> > cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean
> > async)
> > en
> > System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior
> > cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String
> > method, DbAsyncResult result)
> > en
> > System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult
> > result, String methodName, Boolean sendToPipe)
> > en System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
> > en NHibernate.AdoNet.AbstractBatcher.ExecuteNonQuery(IDbCommand
> > cmd) en d:\CSharp\NH\nhibernate\src\NHibernate\AdoNet
> > \AbstractBatcher.cs:línea 216
> > en NHibernate.AdoNet.NonBatchingBatcher.AddToBatch(IExpectation
> > expectation) en d:\CSharp\NH\nhibernate\src\NHibernate\AdoNet
> > \NonBatchingBatcher.cs:línea 39
> > en
> > NHibernate.Persister.Entity.AbstractEntityPersister.Insert(Object id,
> > Object[] fields, Boolean[] notNull, Int32 j, SqlCommandInfo sql,
> > Object obj, ISessionImplementor session) en d:\CSharp\NH\nhibernate\src
> > \NHibernate\Persister\Entity\AbstractEntityPersister.cs:línea 2643
> > --- Fin del seguimiento de la pila de la excepción interna ---
> > en
> > NHibernate.Persister.Entity.AbstractEntityPersister.Insert(Object id,
> > Object[] fields, Boolean[] notNull, Int32 j, SqlCommandInfo sql,
> > Object obj, ISessionImplementor session) en d:\CSharp\NH\nhibernate\src
> > \NHibernate\Persister\Entity\AbstractEntityPersister.cs:línea 2663
> > en
> > NHibernate.Persister.Entity.AbstractEntityPersister.Insert(Object id,
> > Object[] fields, Object obj, ISessionImplementor session) en d:\CSharp
> > \NH\nhibernate\src\NHibernate\Persister\Entity
> > \AbstractEntityPersister.cs:línea 3015
> > en NHibernate.Action.EntityInsertAction.Execute() en d:\CSharp\NH
> > \nhibernate\src\NHibernate\Action\EntityInsertAction.cs:línea 59
> > en NHibernate.Engine.ActionQueue.Execute(IExecutable executable) en
> > d:\CSharp\NH\nhibernate\src\NHibernate\Engine\ActionQueue.cs:línea 136
> > en NHibernate.Engine.ActionQueue.ExecuteActions(IList list) en d:
> > \CSharp\NH\nhibernate\src\NHibernate\Engine\ActionQueue.cs:línea 126
> > en NHibernate.Engine.ActionQueue.ExecuteActions() en d:\CSharp\NH
> > \nhibernate\src\NHibernate\Engine\ActionQueue.cs:línea 169
> > en
>
> > NHibernate.Event.Default.AbstractFlushingEventListener.PerformExecutions(IEventSource
> > session) en d:\CSharp\NH\nhibernate\src\NHibernate\Event\Default
> > \AbstractFlushingEventListener.cs:línea 249
> > en
> > NHibernate.Event.Default.DefaultFlushEventListener.OnFlush(FlushEvent
> > event) en d:\CSharp\NH\nhibernate\src\NHibernate\Event\Default
> > \DefaultFlushEventListener.cs:línea 19
> > en NHibernate.Impl.SessionImpl.Flush() en d:\CSharp\NH\nhibernate
> > \src\NHibernate\Impl\SessionImpl.cs:línea 1479
> > en NHibernate.Transaction.AdoTransaction.Commit() en d:\CSharp\NH
> > \nhibernate\src\NHibernate\Transaction\AdoTransaction.cs:línea 187
> > en MRGest.Data.Repositories.BaseRepository`2.Add(TEntity entity) en
> > D:\Proyectos\Ironicnet\ironicnet.com\MRGest\trunk\src\MRGest\Data
> > \Repositories\BaseRepository.cs:línea 18
> > en
> > Web.Controllers.Modules.Stock.ProductBrand.ProductBrandCRUD.Create(String
> > name, String description) en D:\Proyectos\Ironicnet\ironicnet.com
> > \MRGest\trunk\src\MRGest\Web\Controllers\Modules\Stock\ProductBrand
> > \CRUD.aspx.cs:línea 19
> > =========================================
>
> > Muchas gracias, saludos.
>
> > --
> > 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