como ficou esse trecho de código abaixo no Entity Core ? modelBuilder.Properties().Configure(p => p.HasMaxLength(200));
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
como ficou esse trecho de código abaixo no Entity Core ? modelBuilder.Properties().Configure(p => p.HasMaxLength(200));
Oi Wesley
Você pode usar este padrão no exemplo abaixo, em que estou definindo o tamanho máximo para o título de um livro com o método HasMaxLength():
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Livro>()
.Property(b => b.Titulo).HasMaxLength(150);
}Como alternativa, você pode utilizar o atributo MaxLength no modelo:
public class Livro
{
public int LivroId { get; set; }
[MaxLength(150)]
public string Titulo { get; set; }
public string Autor { get; set; }
}
Certo. Marcelo, como ficou essa essa linha abaixo do EF6 No EFCore
//Aqui vamos remover a pluralização padrão do Etity Framework que é em inglês modelBuilder.Conventions.Remove();
/*Desabilitamos o delete em cascata em relacionamentos 1:N evitando
ter registros filhos sem registros pai*/
modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>();
//Basicamente a mesma configuração, porém em relacionamenos N:N
modelBuilder.Conventions.Remove<ManyToManyCascadeDeleteConvention>();
/*Toda propriedade do tipo string na entidade POCO
seja configurado como VARCHAR no SQL Server*/
modelBuilder.Properties<string>().Configure(p => p.HasColumnType("varchar"));
Olá,
Encontrei essa resposta em outro site, mas não testei:
https://stackoverflow.com/a/48131066/1123307
Pelo que li, o Entity Framework Core 2.0 ainda não possui essas configurações que existiam no Entity Framework 6:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
// equivalent of modelBuilder.Conventions.AddFromAssembly(Assembly.GetExecutingAssembly());
// look at this answer: https://stackoverflow.com/a/43075152/3419825
// for the other conventions, we do a metadata model loop
foreach (var entityType in modelBuilder.Model.GetEntityTypes())
{
// equivalent of modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
entityType.Relational().TableName = entityType.DisplayName();
// equivalent of modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>();
// and modelBuilder.Conventions.Remove<ManyToManyCascadeDeleteConvention>();
entityType.GetForeignKeys()
.Where(fk => !fk.IsOwnership && fk.DeleteBehavior == DeleteBehavior.Cascade)
.ToList()
.ForEach(fk => fk.DeleteBehavior = DeleteBehavior.Restrict);
}
base.OnModelCreating(modelBuilder);
}
Um abraço, Marcelo!