2

I have a project it's about real estate so I created tables user and linked it with estates, and I learnt about identity.

When I migrate it hides the user table because the ASP.NET Core identity already has a users table, so how can I link asp.net user to users or how to link asp.net user to identity user

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



   
0

2 Answers 2

1

Modify your Dbcontext class as below:

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");
    }
}

And I have simpfied the class as below:

public class User:IdentityUser

{
    public int Id { get; set; }
    public string Name { get; set; }
   
    public string Password { get; set; }
  }

Result: The migration class: migration and the database:

DB1 DB2

And if you modify the dbcontext class as follow:

public class UserTestDbContext : IdentityDbContext<User>
{
    public UserTestDbContext(DbContextOptions<UserTestDbContext> options)
        : base(options)
    {
    }

    public DbSet<_3._7.Models.User> User { get; set; }    
}

You could find the properties of user class has been added to the ASPNetUser Table. enter image description here

Sign up to request clarification or add additional context in comments.

Comments

0

You have to add the fields you want to add to the identity users table in the applicationDbContext.cs file like this:

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

1 Comment

if this answered the question, please consider marking it as the excepted answer.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.