Necesito integrar la última versión de MVC de Asp.Net con una base de datos existente que tiene una columna adicional String Address
a la tabla dbo.AspNetUsers
Necesito crear una instancia ApplicationUser
que tenga la propiedad Address.
¿Alguna idea de cómo hacerlo?
Una posible solución que funciona para mí, básicamente, puedo integrar Asp.Net Identity User Profiles con una base de datos existente.
Obteniendo las Tablas Asp.Identity:
Alternativamente, use algo como http://identity.codeplex.com/
Integración con su db existente:
Ahora tiene Asp.Identity Tables en su db con modelo ER en su aplicación.
Asp.Identity Profile Agregar nuevas propiedades:
Ejecute el comando “Habilitar migraciones”; Una vez que habilitamos las migraciones de la base de datos, podemos continuar y agregar nuevas propiedades para nuestro perfil de usuario
Para agregar nuevas propiedades, modifique el archivo IdentityModels.cs, por ejemplo:
public class ApplicationUser : IdentityUser { public string FirstName { get; set; } public string LastName { get; set; } public string EmailID { get; set; } }
Agregar nueva migración
Una vez que agreguemos las propiedades, traiga la consola de Package Manager y ejecute el siguiente comando.
Agregar-Migración “YouMigrationName”
Este comando generará un archivo de script de base de datos, ahora ejecuta el siguiente comando para ejecutar este archivo de script contra la base de datos.
Update-Database
Ahora, todas las propiedades nuevas se convertirán en campos de tabla en la misma tabla de base de datos.
Espero que pueda ayudar a otros, si tiene una idea mejor, hágamelo saber.
He tenido éxito en la integración de una base de datos existente a través de Database First con Identity Framework 2.0. He escrito una publicación de blog aquí que utiliza ASP.NET MVC 5, Identity Framework 2.0 y la plantilla SPA de Visual Studio 2013 Update 2 RTM.
Espero que esto ayude a cualquiera en su viaje porque contiene algunos puntos que no figuran en un solo lugar y que tuve que resolver por mi cuenta.
Eche un vistazo a estos proyectos en GitHub:
Que incluye:
public class MyUser: IdentityUser {public virtual MyUserInfo MyUserInfo {get; conjunto; }}
public class MyUserInfo{ public int Id { get; set; } public string FirstName { get; set; } public string LastName { get; set; } } public class MyDbContext : IdentityDbContext //Edited to MyUserInfo { public MyDbContext() : base("DefaultConnection") { } public System.Data.Entity.DbSet MyUserInfo { get; set; } }
Obteniendo información de perfil
Cuando el usuario UserId
sesión, puede mostrar la información del perfil haciendo lo siguiente Obtenga el UserId
de UserId
actual conectado, para que pueda buscar al usuario en el sistema de identidad ASP.NET
var currentUserId = User.Identity.GetUserId();
Cree una instancia del UserManager
en el sistema ASP.Identity para que pueda buscar al usuario en el sistema
var manager = new UserManager(new UserStore (new MyDbContext()));
Obtiene el objeto Usuario
var currentUser = manager.FindById(User.Identity.GetUserId());
Obtener la información de perfil sobre el usuario
currentUser.MyUserInfo.FirstName