Migración de Entity Framework 7: ¿cómo obtener una columna varchar con una longitud mayor que 1?

code-first-migrations entity-framework-core maxlength sql-server varchar

Pregunta

Tengo los siguientes

[Table("Countries")]
public class Country
{
    public int CountryId { get; set; }

    [MaxLength(255), Required]
    public string CountryName { get; set; }

    [Column(TypeName = "varchar")]
    public string CountryCode { get; set; }
}

Cada vez que aplico mi migración, CountryCode se convierte en una columna varchar con una longitud máxima de 1. Intenté establecer la anotación MaxLength en 255 y aún obtengo una longitud máxima de 1. Cuando la columna se establece como nvarchar, funciona como se esperaba. ¿Estoy haciendo algo mal?

Edición: siempre que establezca explícitamente el tipo de datos de cadena, la longitud se establece en 1. Podría haber usado la Columna (TypeName = "nvarchar")] y la longitud se establece como 1 ..

Respuesta aceptada

Me hubiera gustado haber usado anotaciones de datos, pero pude hacer que funcionara con:

 builder.Entity<Country>()
            .Property(e = e.CountryCode).HasSqlServerColumnType("VARCHAR(30)");

Las anotaciones de datos aún no están completamente implementadas en Entity Framework 7. Aún puede agregar anotaciones a sus clases de entidad para que sean utilizadas por otros marcos (como ASP.NET MVC), pero Entity Framework no procesará estas anotaciones. Puede realizar un seguimiento del soporte para Anotaciones de datos en GitHub .

http://ef.readthedocs.org/en/latest/modeling/configuring.html




Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué