Migrazione di Entity Framework 7: come ottenere una colonna varchar con una lunghezza maggiore di 1?

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

Domanda

Ho il seguente:

[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; }
}

Ogni volta che applico la mia migrazione, CountryCode diventa una colonna varchar con una lunghezza massima di 1. Ho provato a impostare l'annotazione MaxLength su 255 e ottenere comunque una lunghezza massima di 1. Quando la colonna è impostata come nvarchar, funziona come previsto. Sto facendo qualcosa di sbagliato?

Modifica: ogni volta che imposto esplicitamente il tipo di dati stringa, la lunghezza è impostata su 1. Potrei aver usato Column (TypeName = "nvarchar")] e la lunghezza è impostata su 1 ..

Risposta accettata

Mi piacerebbe aver usato annotazioni di dati, ma sono riuscito a farlo funzionare con:

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

Le annotazioni di dati non sono ancora completamente implementate in Entity Framework 7. È comunque possibile aggiungere annotazioni alle classi di entità in modo che vengano utilizzate da altri framework (come ASP.NET MVC), ma Entity Framework non elaborerà queste annotazioni. È possibile tenere traccia del supporto per le annotazioni dei dati su GitHub .

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




Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché