Agregar columnas a la tabla de usuarios en ASP.NET Core 2.0

Sabemos que es bastante fácil tener una aplicación en ASP.NET Core 2.0 que funcione con un sistema de usuarios. Solamente tienes que presionar el botón de Change Authentication cuando estás creando la aplicación, y seleccionar la opción deseada. En nuestro caso, trabajaremos con la opción de Individual User Accounts: Store user accounts in-app. La idea de esta opción es que la información de nuestros usuarios va a residir en nuestro sistema.

Si has utilizado esta opción, sabes que el sistema crea varias tablas para ti: la tabla de usuarios, la de roles, claims, logins, entre otros. En la tabla de usuarios se guarda información de nuestros usuarios. Es posible que quieras modificar esta tabla para guardar información extra. Eso es posible de hacerlo. Vamos a ver el procedimiento.

Para hacer esto solamente tenemos que:

  1. Modificar la clase ApplicationUser
  2. Agregar la migración
  3. Aplicar la migración

ApplicationUser

Si creaste tu proyecto como lo indiqué en la introducción de esta entrada (Individual User Accounts: Store user accounts in-app), verás una clase llamada ApplicationUser dentro de la carpeta Models. Esta clase es un modelo el cual representa usuarios de tu aplicación.

Si no la has tocado, verás que está vacía. Aquí es donde podemos colocar la información del usuario que queremos guardar. Supongamos que queremos guardar su fecha de nacimiento y su país de origen. Para eso entonces crearemos dos propiedades en la clase ApplicationUser:


public class ApplicationUser : IdentityUser
{
public DateTime Birthdate { get; set; }
public string Country { get; set; }
}

Estas propiedades serán transformadas en columnas con las migraciones.

Agregando la Migración

Recordamos que las migraciones son cambios incrementales que hacemos en nuestra base de datos utilizando Entity Framework. La idea es que cuando hagas cambios a tus modelos (como ApplicationUser), y quieres que esos cambios se repliquen en tu base de datos, vas a crear una migración la cual documenta los cambios que se van a realizar a nivel de base de datos. Luego debes aplicar estos cambios en la base de datos. Empecemos agregando la migración. Realiza una de las siguientes acciones dependiendo de si usas Visual Studio o el dotnet cli.

  • Si estás utilizando Visual Studio, ve al Package Manager Console, al cual puedes llegar vía: Tools > Nuget Package Manager > Package Manager Console. E introduce el siguiente comando:

Add-Migrations User_BirthDate_Country

  • Si estás utilizando el dotnet cli, entonces utiliza el siguiente comando:

dotnet ef migrations add User_BirthDate_Country

Si lo deseas puedes visualizar la migración previo a aplicarla en tu base de datos. Para eso ve a la clase User_BirthDate_Country que se creó en tu proyecto. En ella podemos ver que se indica que se agregarán las columnas Birthdate y Country en la tabla AspNetUsers.

Aplicando la Migración

Ahora que ya tenemos la migración creada, podemos aplicarla:

  • Si usas Visual Studio, ve al Package Manager Console y utiliza el siguiente comando:

update-database

  • Si utilizas el dotnet cli, utiliza el siguiente comando:

dotnet ef database update

Ya con esto vamos a ver los cambios en la tabla:

asp net core added column to user tablePNG

Conclusión

Modifica la clase ApplicationUser para agregar columnas a la tabla AspNetUsers.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s