none
Fluent API fora da classe de contexto RRS feed

  • Pergunta

  • Minha classe de domínio:

    public class Pais
        {
            public int PaisID { get; set; }
            public string NomePais { get; set; }
    
            public virtual ICollection<Estado> Estados { get; set; }
        }

    Minha classe de contexto com fluente API:

    public class Contexto : DbContext
        {
            public DbSet<Pais> Paises { get; set; }
            public DbSet<Estado> Estados { get; set; }
    
            protected override void OnModelCreating(DbModelBuilder modelBuilder)
            {
                modelBuilder.Entity<Pais>()
                    .Property(p => p.NomePais)
                    .IsRequired();
            }
    
        }

    Minha dúvida: Se eu tiver 100 classes de domínio, é apenas na classe de contexto que vou poder declarar a fluent API? O que eu estou querendo saber em portugûes é: Isso não vai ficar entupido demais não? Posso declarar a fluent API em outro lugar? Qual?

    Lets

    terça-feira, 12 de março de 2013 16:11

Respostas

  • Sim, você pode ter classes separadas para configuração, por exemplo: uma para cada classe de entidade. 

    Sendo assim você cria uma clase:

    public class SuaEntidadeConfiguration : EntityTypeConfiguration<SuaEntidade> { public SuaEntidadeConfiguration() { HasKey(u => u.UserName); Propriedade ( u => u . UserName ) . HasMaxLength ( 50 ) . IsRequired (); / / Etc } }

    Aí na sua classe de contexto você chama todas as classes de configuração:

    público  classe  MeuContexto :  DbContext 
    { 
        / / ...
    
        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Configurations.Add(new SuaEntidadeConfiguration());
        }
    }

    Assim irá facilitar a leitura e a organização.


    Microsoft Communit Contributor
    Twitter: @MayogaX
    Blog: Dev Blog


    • Editado Priscila Mayumi Sato terça-feira, 12 de março de 2013 17:30 edição de exemplo
    • Sugerido como Resposta Vitor Mendes terça-feira, 12 de março de 2013 17:30
    • Marcado como Resposta Lets Carvalho terça-feira, 12 de março de 2013 18:52
    terça-feira, 12 de março de 2013 17:29

Todas as Respostas

  • Sim, você pode ter classes separadas para configuração, por exemplo: uma para cada classe de entidade. 

    Sendo assim você cria uma clase:

    public class SuaEntidadeConfiguration : EntityTypeConfiguration<SuaEntidade> { public SuaEntidadeConfiguration() { HasKey(u => u.UserName); Propriedade ( u => u . UserName ) . HasMaxLength ( 50 ) . IsRequired (); / / Etc } }

    Aí na sua classe de contexto você chama todas as classes de configuração:

    público  classe  MeuContexto :  DbContext 
    { 
        / / ...
    
        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Configurations.Add(new SuaEntidadeConfiguration());
        }
    }

    Assim irá facilitar a leitura e a organização.


    Microsoft Communit Contributor
    Twitter: @MayogaX
    Blog: Dev Blog


    • Editado Priscila Mayumi Sato terça-feira, 12 de março de 2013 17:30 edição de exemplo
    • Sugerido como Resposta Vitor Mendes terça-feira, 12 de março de 2013 17:30
    • Marcado como Resposta Lets Carvalho terça-feira, 12 de março de 2013 18:52
    terça-feira, 12 de março de 2013 17:29
  • Sim, você pode ter classes separadas para configuração, por exemplo: uma para cada classe de entidade. 

    Sendo assim você cria uma clase:

    public class SuaEntidadeConfiguration : EntityTypeConfiguration<SuaEntidade> { public SuaEntidadeConfiguration() { HasKey(u => u.UserName); Propriedade ( u => u . UserName ) . HasMaxLength ( 50 ) . IsRequired (); / / Etc } }

    Aí na sua classe de contexto você chama todas as classes de configuração:

    público  classe  MeuContexto :  DbContext 
    { 
        / / ...
    
        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Configurations.Add(new SuaEntidadeConfiguration());
        }
    }

    Assim irá facilitar a leitura e a organização.


    Microsoft Communit Contributor
    Twitter: @MayogaX
    Blog: Dev Blog



    Eta japa arretada!!!
    terça-feira, 12 de março de 2013 18:52