Mapeamento Fluent API
06/10/2017
0
Bom dia, Estou tendo dificuldade em fazer o mapeamento de três classes, onde são Cliente, Matricula e Convenio. Cada cliente pode ter muitas matriculas então fica relacionamento de um para muitos e cada matricula deve ter um convenio mas convenio pode ter diversas matriculas o que também faz com que fique relacionamento um para muitos entre convenio e matricula. porem quando vou adicionar uma Migration da erro ("A sequência não contém elementos de correspondência") e não sei o que esta ocasionando isto.
Segue abaixo minhas classe para que possam analisar:
Segue abaixo minhas classe para que possam analisar:
public class Cliente : Entity { public Cliente() { this.Telefones = new List<TelefoneCliente>(); this.Enderecos = new List<EnderecoCliente>(); this.Matriculas = new List<Matricula>(); this.Emails = new List<EmailCliente>(); } public string Nome { get; set; } public string CPF { get; set; } public string RG { get; set; } public DateTime Nascimento { get; set; } public virtual Indicacao IndicadoPor { get; set; } public virtual Enum.Cliente.Sexo Genero { get; set; } public virtual Enum.Cliente.EstadoCivil EstadoCivil { get; set; } public string Observacoes { get; set; } public bool Ativo { get; set; } public virtual ICollection<Matricula> Matriculas { get; set; } public virtual ICollection<TelefoneCliente> Telefones { get; set; } public virtual ICollection<EnderecoCliente> Enderecos { get; set; } public virtual ICollection<EmailCliente> Emails { get; set; } }
public class Matricula : Entity { public Matricula() { } public string NumeroMatricula { get; set; } public virtual Cliente Cliente { get; set; } public virtual Convenio Convenio { get; set; } }
public class Convenio :Entity { public Convenio() { this.Matriculas = new List<Matricula>(); this.Enderecos = new List<EnderecoConvenio>(); this.Emails = new List<EmailConvenio>(); this.Telefones = new List<TelefoneConvenio>(); } public string RazaoSocial { get; set; } public string CNPJ { get; set; } public string Site { get; set; } public bool Ativo { get; set; } public virtual ICollection<TelefoneConvenio> Telefones { get; set; } public virtual ICollection<EmailConvenio> Emails { get; set; } public virtual ICollection<Matricula> Matriculas { get; set; } public virtual ICollection<EnderecoConvenio> Enderecos { get; set; } }
public class ClienteMap:EntityTypeConfiguration<Cliente> { public ClienteMap() { ToTable("TBL_CLIENTES"); HasKey(c => c.Id); Property(c => c.Id).HasColumnName("CD_CLIENTE"); Property(c => c.Nome).IsRequired().HasMaxLength(150).HasColumnName("DS_NOME"); Property(c => c.CPF).IsOptional().HasMaxLength(14).HasColumnName("NR_CPF"); Property(c => c.RG).IsOptional().HasColumnName("NR_RG"); Property(c => c.Nascimento).IsRequired().HasColumnName("DT_NASCIMENTO").HasColumnType("Date"); Property(c => c.Genero).IsRequired().HasColumnName("CD_GENERO"); Property(c => c.EstadoCivil).IsRequired().HasColumnName("CD_ESTADO_CIVIL"); Property(c => c.Ativo).IsRequired().HasColumnName("X_ATIVO"); Property(c => c.Observacoes).IsOptional().HasColumnName("DS_OBSERVACAO"); Property(c => c.DataCadastro).IsRequired().HasColumnName("DT_CADASTRO"); Property(c => c.DataAtualizacao).IsRequired().HasColumnName("DT_ATUALIZACAO"); HasMany<Matricula>(c => c.Matriculas); HasMany<EnderecoCliente>(c => c.Enderecos); HasMany<EmailCliente>(c => c.Emails); HasMany<TelefoneCliente>(c => c.Telefones); } }
public class MatriculaMap : EntityTypeConfiguration<Matricula> { public MatriculaMap() { ToTable("TBL_CLIENTES_MATRICULAS"); HasKey(m => m.Id); Property(c => c.Id).HasColumnName("CD_MATRICULA"); Property(m => m.NumeroMatricula).IsRequired().HasMaxLength(150).HasColumnName("NR_MATRICULA"); Property(m => m.DataCadastro).IsRequired().HasColumnName("DT_CADASTRO").HasColumnType("Date"); Property(m => m.DataAtualizacao).IsRequired().HasColumnName("DT_ATUALIZACAO").HasColumnType("Date"); } }
public class ConvenioMap:EntityTypeConfiguration<Convenio> { public ConvenioMap() { ToTable("TBL_CONVENIOS"); HasKey(c => c.Id); Property(c => c.Id).HasColumnName("CD_CONVENIO"); Property(c => c.RazaoSocial).IsRequired().HasMaxLength(150).HasColumnName("DS_RAZAO_SOCIAL"); Property(c => c.CNPJ).IsRequired().HasMaxLength(18).HasColumnName("NR_CNPJ"); Property(c => c.Ativo).IsRequired().HasColumnName("X_ATIVO"); Property(c => c.DataCadastro).IsRequired().HasColumnName("DT_CADASTRO").HasColumnType("Date"); Property(c => c.DataAtualizacao).IsRequired().HasColumnName("DT_ATUALIZACAO").HasColumnType("Date"); HasMany<TelefoneConvenio>(c => c.Telefones); HasMany<EmailConvenio>(c => c.Emails); HasMany<EnderecoConvenio>(c => c.Enderecos); HasMany(c => c.Matriculas).WithMany().Map(m => m.MapRightKey("CD_CONVENIO")); } }
Paulo Vargas
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)