como ficou esse trecho de código abaixo no Entity Core ? modelBuilder.Properties().Configure(p => p.HasMaxLength(200));
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!