none
Bag nHibernate com key null RRS feed

  • Pergunta

  • Olá,

    Alguém sabe se é possível utilizar Bag do nHibernate com o Key Null?

    Em uma tabela alguns registros possui varios registros relacionados, um para muitos, mas nem sempre, as vezes um regitro nao tera nehum.

    Fiz o mapeamento por uma bag mas da erro de foreign key por que o campo na tabela relacionada as vezes estará nulo.

    Existe alguma forma de trazer uma coleção de registro dessa forma que preciso.

    sexta-feira, 2 de outubro de 2015 15:26

Todas as Respostas

  • Boa tarde,

    tem como sim, só na sua classe de domínio colocar que o campo aceita NULL

    sexta-feira, 2 de outubro de 2015 16:57
  • Eu tentei marcar com o ? mas da erro, o atributo é uma lista.
    sexta-feira, 2 de outubro de 2015 17:07
  • tem como postar o código?
    sexta-feira, 2 de outubro de 2015 17:12
  • Classe que possui os registros pais:

        public class Fatura
        {
            public virtual long Id { get; set; }
            public virtual DateTime DtEmissao { get; set; }
            public virtual decimal VlrTotal { get; set; }
            public virtual Convenio Convenio { get; set; }
            public virtual IList<Receber> Receber { get; set; }

            public Fatura()
            {
                Receber = new List<Receber>();
            }

        }

    Classe que possui os registros filhos:

        public class Receber
        {
            public virtual long Id { get; set; }
            public virtual Fatura Fatura { get; set; }
            public virtual DateTime Pagamento { get; set; }
            public virtual decimal Valor { get; set; }
            public virtual decimal Juros { get; set; }
            public virtual decimal Multa { get; set; }
            public virtual decimal OutrosAcrescimos { get; set; }
            public virtual decimal Desconto { get; set; }
        }

    Mapeamento da classe pai:

        public class FaturaMapping : ClassMapping<Fatura>
        {
            public FaturaMapping()
            {
                Table("FATURA");

                Id(x => x.Id, x =>
                {
                    x.Column("ID_FATURA");
                });

                Property(x => x.DtEmissao, x =>
                {
                    x.Column("DTEMISSAO");
                });

                Property(x => x.VlrTotal, x =>
                {
                    x.Column("VLRTOTAL");
                });

                ManyToOne(x => x.Convenio, x =>
                {
                    x.Column("FK_CONVENIO");
                    x.NotNullable(true);
                });

                Bag(x => x.Receber, x =>
                {
                    x.Key(y =>
                    {
                        y.Column("FK_FATURA");
                        y.NotNullable(false);
                    });
                }, x => x.OneToMany());

            }
        }


    • Editado Edmar Munhoz sexta-feira, 2 de outubro de 2015 18:33
    sexta-feira, 2 de outubro de 2015 18:32