Tengo un proyecto sobre bienes raíces, así que creé tablas user y las vinculé con estates , y aprendí sobre identidad.
Cuando migro, oculta la tabla de user porque la identidad de ASP.NET Core ya tiene una tabla de users , entonces, ¿cómo puedo vincular el usuario de asp.net a los usuarios o cómo vincular el usuario de asp.net con el usuario de identidad?
using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using System.Linq; using System.Threading.Tasks; namespace Try.DAL.Entity { [Table("Users")] public class Users { [Key] public int Id { get; set; } [StringLength(50)] public string Fname { get; set; } [StringLength(50)] public string Lname { get; set; } public string Email { get; set; } public string Password { get; set; } [StringLength(20)] public string Phone { get; set; } public DateTime Signupdate { get; set; } public int Usergroupid { get; set; } [ForeignKey("Usergroupid")] public UserGroup Usergroup { get; set; } public virtual ICollection<Estate> Estate { get; set; } } } using Microsoft.EntityFrameworkCore; using Try.DAL.Entity; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Try.Models; using Microsoft.AspNetCore.Identity.EntityFrameworkCore; //using Try.Models; namespace Try.DAL.Database { public class DbContainer : IdentityDbContext { public DbContainer(DbContextOptions<DbContainer> opts) : base(opts) { } public virtual DbSet<RefreshToken> RefreshTokens { get; set; } public DbSet<Users> Users { get; set; } public DbSet<Ads> Ads { get; set; } public DbSet<Clients> Clients { get; set; } public DbSet<Feedback> Feedback { get; set; } public DbSet<Interests> Interests { get; set; } public DbSet<Orders> Orders { get; set; } public DbSet<Estate> Estate { get; set; } public DbSet<users> users{ get; set; }Debe agregar los campos que desea agregar a la tabla de usuarios de identidad en el archivo applicationDbContext.cs de esta manera:
namespace Try.DAL.Database { // You add this class here with custom fields. public class ApplicationUser : IdentityUser { // add properties here. [StringLength(50)] public string Fname { get; set; } [StringLength(50)] public string Lname { get; set; } public string Email { get; set; } public string Password { get; set; } [StringLength(20)] public string Phone { get; set; } public DateTime Signupdate { get; set; } public int Usergroupid { get; set; } [ForeignKey("Usergroupid")] public UserGroup Usergroup { get; set; } public virtual ICollection<Estate> Estate { get; set; } } public class ApplicationDbContext : IdentityDbContext<ApplicationUser> { public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options) : base(options) { } public DbSet<Users> Users { get; set; } public DbSet<Ads> Ads { get; set; } public DbSet<Clients> Clients { get; set; } public DbSet<Feedback> Feedback { get; set; } public DbSet<Interests> Interests { get; set; } public DbSet<Orders> Orders { get; set; } public DbSet<Estate> Estate { get; set; } } }Modifique su clase Dbcontext como se muestra a continuación:
public class UserTestDbContext : IdentityDbContext { public UserTestDbContext(DbContextOptions<UserTestDbContext> options) : base(options) { } public DbSet<_3._7.Models.User> User { get; set; } protected override void OnModelCreating(ModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); modelBuilder.Entity<User>().ToTable("User"); } }Y he simplificado la clase de la siguiente manera:
Usuario de clase pública: IdentityUser
{ public int Id { get; set; } public string Name { get; set; } public string Password { get; set; } } Resultado: La clase de migración:
y la base de datos:
Y si modifica la clase dbcontext de la siguiente manera:
public class UserTestDbContext : IdentityDbContext<User> { public UserTestDbContext(DbContextOptions<UserTestDbContext> options) : base(options) { } public DbSet<_3._7.Models.User> User { get; set; } } Podría encontrar que las propiedades de la clase de usuario se han agregado a la tabla ASPNetUser. 