risposta

6

Ho creato una classe ApplicationUser : IdentityUser in cui sovrascrivo proprietà PhoneNumber con l'attributo [MaxLength(64)].

public class ApplicationUser : IdentityUser 
{ 
    [MaxLength(64)] 
    public override string PhoneNumber { get; set; } 

    public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser> manager) 
    { 
     var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie); 
     return userIdentity; 
    } 
} 
+0

Bella soluzione pulita. – Zapnologica

0

sì, è possibile modificare, limitare solo nvarchar se non si desidera superare tale numero perché la dimensione dell'archivio dati di nvarchar è uguale a due volte la lunghezza effettiva dei dati immessi + 2 byte. es: max o 64 dimensione dell'effetto solito se si immette 5 stringa char

4

Si dovrebbe essere in grado di specificare la lunghezza personalizzato utilizzando il ModelBuilder nel ApplicationDbContext

public class ApplicationDbContext : IdentityDbContext<ApplicationUser> 
{ 
    public ApplicationDbContext() 
     : base("DefaultConnection", throwIfV1Schema: false) 
    { 

    } 

    static ApplicationDbContext() 
    { 
     // Set the database intializer which is run once during application start 
     // This seeds the database with admin user credentials and admin role 
     Database.SetInitializer<ApplicationDbContext>(new ApplicationDbInitializer()); 
    } 

    protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 
     base.OnModelCreating(modelBuilder); 

     modelBuilder.Properties<string>() 
     .Where(x => x.Name == "PhoneNumber") 
     .Configure(c => c.HasMaxLength(64)); 
    } 

    public static ApplicationDbContext Create() 
    { 
     return new ApplicationDbContext(); 
    } 
} 

ho provato e funziona!

Per ulteriori informazioni sulla modifica mapping EF6 è possibile controllare questo link:

http://msdn.microsoft.com/en-us/data/jj819164#classes

+0

Funziona ora? per favore accetta questa risposta come risposta se funziona e non hai altre domande, ecc. –

+0

Grazie per la soluzione. Ho trovato l'altro modo di fare lo stesso. Ho creato la classe 'ApplicationUser: IdentityUser' in cui sovrascrivo la proprietà' PhoneNumber' con l'attributo '[MaxLength (64)]'. – sDima

Problemi correlati