Sure,
This error occurs when i save a table that has foreign key more than
once in same transaction, in case below Ban009

Stack Trace:
 em NHibernate.Properties.BasicPropertyAccessor.BasicGetter.Get(Object
target)
   em NHibernate.Tuple.Entity.AbstractEntityTuplizer.GetIdentifier
(Object entity)
   em NHibernate.Persister.Entity.AbstractEntityPersister.GetIdentifier
(Object obj, EntityMode entityMode)
   em NHibernate.Type.EntityType.IsEqual(Object x, Object y,
EntityMode entityMode, ISessionFactoryImplementor factory)
   em NHibernate.Type.ComponentType.IsEqual(Object x, Object y,
EntityMode entityMode, ISessionFactoryImplementor factory)
   em NHibernate.Engine.EntityKey.Equals(Object other)
   em System.Collections.Generic.ObjectEqualityComparer`1.Equals(T x,
T y)
   em System.Collections.Generic.Dictionary`2.FindEntry(TKey key)
   em System.Collections.Generic.Dictionary`2.TryGetValue(TKey key,
TValue& value)
   em NHibernate.Engine.StatefulPersistenceContext.GetDatabaseSnapshot
(Object id, IEntityPersister persister)
   em NHibernate.Engine.ForeignKeys.IsTransient(String entityName,
Object entity, Nullable`1 assumed, ISessionImplementor session)
   em NHibernate.Engine.ForeignKeys.Nullifier.IsNullifiable(String
entityName, Object obj)
   em
NHibernate.Engine.ForeignKeys.Nullifier.NullifyTransientReferences
(Object value, IType type)
   em
NHibernate.Engine.ForeignKeys.Nullifier.NullifyTransientReferences
(Object[] values, IType[] types)
   em
NHibernate.Event.Default.AbstractSaveEventListener.PerformSaveOrReplicate
(Object entity, EntityKey key, IEntityPersister persister, Boolean
useIdentityColumn, Object anything, IEventSource source, Boolean
requiresImmediateIdAccess)
   em NHibernate.Event.Default.AbstractSaveEventListener.PerformSave
(Object entity, Object id, IEntityPersister persister, Boolean
useIdentityColumn, Object anything, IEventSource source, Boolean
requiresImmediateIdAccess)
   em
NHibernate.Event.Default.AbstractSaveEventListener.SaveWithGeneratedId
(Object entity, String entityName, Object anything, IEventSource
source, Boolean requiresImmediateIdAccess)
   em
NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.SaveWithGeneratedOrRequestedId
(SaveOrUpdateEvent event)
   em
NHibernate.Event.Default.DefaultSaveEventListener.SaveWithGeneratedOrRequestedId
(SaveOrUpdateEvent event)
   em
NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.EntityIsTransient
(SaveOrUpdateEvent event)
   em
NHibernate.Event.Default.DefaultSaveEventListener.PerformSaveOrUpdate
(SaveOrUpdateEvent event)
   em
NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.OnSaveOrUpdate
(SaveOrUpdateEvent event)
   em NHibernate.Impl.SessionImpl.FireSave(SaveOrUpdateEvent event)
   em NHibernate.Impl.SessionImpl.Save(Object obj)
   em WFLibrary.DAL.GenericDAO`2.Save() na D:\Pessoal\Projetos\Wf-Loja
\WFLibrary\DAL\GenericDAO.cs:linha 27
   em WFLibrary.DTO.Entities.Finan02.FazLancamentoCCB(String
strEmpresa, String strContaBase, DateTime dtData, Int32 iContaPadrao,
Int32 iHist, Decimal dcValor, String strDocumento, Int009 cliente,
Int32 iAutenticacao) na D:\Pessoal\Projetos\Wf-Loja\WFLibrary\RN
\Finan02.cs:linha 59
   em WFCaixa.WinForms.Caixa.FrmCaixa.EfetivaBaixa() na D:\Pessoal
\Projetos\Wf-Loja\WFCaixa\WinForms\Caixa\FrmCaixa.cs:linha 1879

Classes:
    public class Int001
    {
        private IList<User> _users = new List<User>();

        public virtual string Codigo { get; set; }

        public virtual string Empresa { get; set; }
        public virtual string Estado { get; set; }
        public virtual string Cgc { get; set; }
        public virtual int Caixa3 { get; set; }
        public virtual char UsaMapa { get; set; }
        public virtual string GeraAutomatico { get; set; }

        public virtual IList<User> Users
        {
            get { return _users; }
            set { _users = value; }
        }


        public override bool Equals(object obj)
        {
            return this.IsEqual(obj);
        }

        public override int GetHashCode()
        {
            return HashCodeGenerator.GenerateHashCode(Codigo);
        }

    }

    public partial class Ban009
    {
        public virtual int Recnum { get; set; }
        public virtual Int001 Empresa { get; set; }
        public virtual Ban008 Cartao { get; set; }
        public virtual DateTime? DtVenda { get; set; }
        public virtual string Documento { get; set; }
        public virtual decimal ValorVenda { get; set; }
        public virtual DateTime? DtEntrega { get; set; }
        public virtual decimal ValorAReceber { get; set; }
        public virtual DateTime? DtVencimento { get; set; }
        public virtual DateTime? DtRecebimento { get; set; }
        public virtual decimal ValorRecebido { get; set; }
        public virtual decimal Taxa { get; set; }
        public virtual decimal Diferenca { get; set; }
        public virtual DateTime? DtEstorno { get; set; }
        public virtual decimal ValorEstorno { get; set; }
        public virtual string NroCartao { get; set; }
        public virtual string Validade { get; set; }
        public virtual string CodAutorizacao { get; set; }
        public virtual string Parcelas { get; set; }
        public virtual char ParceladoPor { get; set; }
        public virtual string NomeImpresso { get; set; }
        public virtual int Vendedor { get; set; }
        public virtual decimal PercCom { get; set; }
        public virtual int NumCaixa { get; set; }
        public virtual decimal TaxaCobrada { get; set; }
        public virtual char Baixado { get; set; }
        public virtual string ContaBase { get; set; }
        public virtual string ContaPadrao { get; set; }
        public virtual int NroLancamento { get; set; }
        public virtual string Rv { get; set; }

        public override bool Equals(object obj)
        {
            return this.IsEqual(obj);
        }

        public override int GetHashCode()
        {
            return HashCodeGenerator.GenerateHashCode(Recnum);
        }
    }

Mapping:
    public class Int001Map : ClassMap<Int001>
    {
        public Int001Map()
        {
            WithTable("INT001");

            Id(x => x.Codigo, "CODIGO");
            Map(x => x.Empresa, "EMPRESA")
                .WithLengthOf(45);
            Map(x => x.Estado, "ESTADO")
                .WithLengthOf(2);
            Map(x => x.Cgc, "CGC")
                .WithLengthOf(20);
            Map(x => x.Caixa3, "CAIXA3");
            Map(x => x.UsaMapa, "USAMAPA");
            Map(x => x.GeraAutomatico, "GERA_AUTOMATICO");

            HasManyToMany(x => x.Users)
                .Access.AsCamelCaseField(Prefix.Underscore)
                .WithTableName("USER00")
                .WithParentKeyColumn("EMPRESA")
                .WithChildKeyColumn("USUARIO")
                .Inverse();
        }
    }

    public class Ban009Map : ClassMap<Ban009>
    {
        public Ban009Map()
        {
            WithTable("BAN009");
            Id(x => x.Recnum, "RECNUM");
            Map(x => x.Documento, "DOCUMENTO");
            Map(x => x.Parcelas, "PARCELAS");
            Map(x => x.ParceladoPor, "PARCELADO_POR");
            Map(x => x.NomeImpresso, "NOME_IMPRESSO");
            Map(x => x.NroCartao, "NRO_CARTAO");
            Map(x => x.NumCaixa, "NUM_CAIXA");
            Map(x => x.PercCom, "PERC_COM");
            Map(x => x.Taxa, "TAXA");
            Map(x => x.Validade, "VALIDADE");
            Map(x => x.CodAutorizacao, "COD_AUTORIZACAO");
            Map(x => x.ValorVenda, "VALOR_VENDA");
            Map(x => x.ValorAReceber, "VALOR_A_RECEBER");
            Map(x => x.DtEntrega, "DT_ENTREGA");
            Map(x => x.DtVenda, "DT_VENDA");
            Map(x => x.DtVencimento, "DT_VENCIMENTO");
            Map(x => x.DtRecebimento, "DT_RECEBIMENTO");
            Map(x => x.ValorRecebido, "VALOR_RECEBIDO");
            Map(x => x.Diferenca, "DIFERENCA");
            Map(x => x.DtEstorno, "DT_ESTORNO");
            Map(x => x.ValorEstorno, "VALOR_ESTORNO");
            Map(x => x.Vendedor, "VENDEDOR");
            Map(x => x.TaxaCobrada, "TAXA_COBRADA");
            Map(x => x.Baixado, "BAIXADO");
            Map(x => x.ContaBase, "CONTA_BASE");
            Map(x => x.ContaPadrao, "CONTA_PADRAO");
            Map(x => x.NroLancamento, "NRO_LANCAMENTO");
            Map(x => x.Rv, "RV");

            References(x => x.Empresa, "EMPRESA");
            References(x => x.Cartao, "CARTAO");
        }
    }


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Fluent NHibernate" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/fluent-nhibernate?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to