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
-~----------~----~----~----~------~----~------~--~---