En mi clase DbContext
tengo lo siguiente:
void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Properties<string>().Configure(c => { c.HasMaxLength(250); });
}
pero también dentro de la clase EntityTypeConfiguration
para un modelo específico que tengo:
{
Property(p => p.Name).HasMaxLength(500);
}
El problema es que establecer la propiedad en 500 dentro de la clase de configuración no está teniendo efecto y EF todavía está validando el máximo para ser 250.
¿Cómo puedo tener una configuración general de 250 pero anular con una API fluida según sea necesario dentro de cada clase?
Si desea dar un campo de cadena de 500 caracteres.
Puede hacerlo utilizando el atributo " MaxLength ".
Estoy creando una tabla de muestra como la siguiente.
Mi configuración de contexto.
void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Properties<string>().Configure(c => { c.HasMaxLength(250); });
}
Estoy creando una tabla llamada FooEntity.
using System;
using System.ComponentModel.DataAnnotations;
namespace Foo.Model
{
public class FooEntity
{
[MaxLength(500)]
public string FooName { get; set; }
}
}
Después de agregar este atributo, el resultado de la migración es el siguiente. Incluso si se da un límite de 250 caracteres, se pasará como 500 caracteres en SQL.
CreateTable(
"dbo.FooEntity",
c => new
{
FooName = c.String(maxLength: 500)
});