Cannot use table 'AspNetUsers' in schema '' for entity 'AspNetUsers' since it is being used for another entity

后端 未结 2 1103
余生分开走
余生分开走 2021-01-21 15:29

We are trying to add Identity 3 to our existing Customers app by extending AspNetUsers

    public class ApplicationUser : IdentityUser
{
    public string Busine         


        
2条回答
  •  死守一世寂寞
    2021-01-21 15:59

    As you inherit from IdentityDbContext, you don't need to recreate AspNet* DbSet, just add your new table.
    Your CustomersContext should look like that:

    public partial class CustomersContext : IdentityDbContext
    {
        protected override void OnConfiguring(DbContextOptionsBuilder options)
        {
            options.UseSqlServer(@"Server=(localdb)\\mssqllocaldb;Database=Customers;Trusted_Connection=True;MultipleActiveResultSets=true");
        }
    
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);// we have to do this because we are inheriting from IdentityDbContext not DbContext
    
            // override the users tables with your properties
            modelBuilder.Entity(entity =>
            {
                entity.HasIndex(e => e.BusinessName).HasName("BusinessNameIndex");
    
                entity.HasIndex(e => e.NormalizedEmail).HasName("EmailIndex");
    
                entity.HasIndex(e => e.NormalizedUserName).HasName("UserNameIndex");
    
                entity.Property(e => e.Id).HasMaxLength(450);
    
                entity.Property(e => e.AddressLabel)
                    .HasMaxLength(255)
                    .HasColumnType("varchar");
    
                entity.Property(e => e.BusinessName)
                    .HasMaxLength(255)
                    .HasColumnType("varchar");
    
                entity.Property(e => e.ContactName)
                    .HasMaxLength(255)
                    .HasColumnType("varchar");
    
                entity.Property(e => e.CountryCode)
                    .IsRequired()
                    .HasMaxLength(2)
                    .HasColumnType("varchar")
                    .HasDefaultValue("00");
    
                entity.Property(e => e.FollowUp).HasColumnType("date");
    
                entity.Property(e => e.MailingList).HasDefaultValue(true);
    
                entity.HasOne(d => d.Country).WithMany(p => p.Users).HasForeignKey(d => d.CountryCode).OnDelete(DeleteBehavior.Restrict);
    
                entity.HasOne(d => d.Subscription).WithMany(p => p.Users).HasForeignKey(d => d.SubscriptionId).OnDelete(DeleteBehavior.Restrict);
            });
    
            modelBuilder.Entity(entity =>
            {
                entity.HasKey(e => e.CountryCode);
    
                entity.Property(e => e.CountryCode)
                    .HasMaxLength(2)
                    .HasColumnType("varchar");
    
                entity.Property(e => e.CalCost).HasColumnType("decimal");
    
                entity.Property(e => e.CountryName)
                    .IsRequired()
                    .HasMaxLength(50)
                    .HasColumnType("varchar");
    
                entity.Property(e => e.CultureCode)
                    .IsRequired()
                    .HasMaxLength(8)
                    .HasColumnType("varchar");
    
                entity.Property(e => e.CurrencyCode)
                    .IsRequired()
                    .HasMaxLength(3)
                    .HasColumnType("varchar");
    
                entity.Property(e => e.InvoiceFooter)
                    .HasMaxLength(50)
                    .HasColumnType("varchar");
    
                entity.Property(e => e.InvoiceName)
                    .IsRequired()
                    .HasMaxLength(50)
                    .HasColumnType("varchar");
    
                entity.Property(e => e.TaxName)
                    .HasMaxLength(3)
                    .HasColumnType("varchar");
    
                entity.Property(e => e.TaxRate).HasColumnType("decimal");
            });
    
            modelBuilder.Entity(entity =>
            {
                entity.HasKey(e => e.DeviceID);
    
                entity.Property(e => e.CALs).HasDefaultValue(0);
    
                entity.Property(e => e.DeviceName)
                    .IsRequired()
                    .HasMaxLength(50)
                    .HasColumnType("varchar");
    
                entity.Property(e => e.UnlockedFrom).HasColumnType("date");
    
                entity.Property(e => e.UnlockedTo).HasColumnType("date");
    
                entity.Property(e => e.UserId)
                    .IsRequired()
                    .HasMaxLength(450);
    
                entity.HasOne(d => d.User).WithMany(p => p.Devices).HasForeignKey(d => d.UserId).OnDelete(DeleteBehavior.Restrict);
            });
    
            modelBuilder.Entity(entity =>
            {
                entity.HasKey(e => e.DownloadId);
    
                entity.Property(e => e.DownloadDate).HasColumnType("date");
    
                entity.Property(e => e.DownloadVersion)
                    .IsRequired()
                    .HasMaxLength(50)
                    .HasColumnType("varchar");
    
                entity.Property(e => e.UserId)
                    .IsRequired()
                    .HasMaxLength(450);
    
                entity.HasOne(d => d.User).WithMany(p => p.Downloads).HasForeignKey(d => d.UserId).OnDelete(DeleteBehavior.Restrict);
            });
    
            modelBuilder.Entity(entity =>
            {
                entity.HasKey(e => e.InvoiceNr);
    
                entity.Property(e => e.AddressLabel)
                    .IsRequired()
                    .HasMaxLength(255)
                    .HasColumnType("varchar");
    
                entity.Property(e => e.InvoiceDate).HasColumnType("date");
    
                entity.Property(e => e.InvoiceDescription)
                    .IsRequired()
                    .HasMaxLength(255)
                    .HasColumnType("varchar");
    
                entity.Property(e => e.InvoiceNet).HasColumnType("money");
    
                entity.Property(e => e.InvoiceTax).HasColumnType("money");
    
                entity.Property(e => e.InvoiceTotal).HasColumnType("money");
    
                entity.Property(e => e.UserId)
                    .IsRequired()
                    .HasMaxLength(450);
    
                entity.HasOne(d => d.User).WithMany(p => p.Invoices).HasForeignKey(d => d.UserId).OnDelete(DeleteBehavior.Restrict);
            });
    
            modelBuilder.Entity(entity =>
            {
                entity.HasKey(e => e.NoteId);
    
                entity.Property(e => e.NoteDate).HasColumnType("date");
    
                entity.Property(e => e.NoteSubject)
                    .IsRequired()
                    .HasMaxLength(50)
                    .HasColumnType("varchar");
    
                entity.Property(e => e.NoteText)
                    .IsRequired()
                    .HasColumnType("varchar");
    
                entity.Property(e => e.UserId)
                    .IsRequired()
                    .HasMaxLength(450);
    
                entity.HasOne(d => d.User).WithMany(p => p.Notes).HasForeignKey(d => d.UserId).OnDelete(DeleteBehavior.Restrict);
            });
    
            modelBuilder.Entity(entity =>
            {
                entity.HasKey(e => e.ReferralSourceId);
    
                entity.Property(e => e.ReferralSourceName)
                    .IsRequired()
                    .HasMaxLength(50)
                    .HasColumnType("varchar");
            });
    
            modelBuilder.Entity(entity =>
            {
                entity.HasKey(e => e.ReferralId);
    
                entity.Property(e => e.ReferralDate).HasColumnType("date");
    
                entity.Property(e => e.UserId)
                    .IsRequired()
                    .HasMaxLength(450);
    
                entity.HasOne(d => d.ReferralSource).WithMany(p => p.Referrals).HasForeignKey(d => d.ReferralSourceID).OnDelete(DeleteBehavior.Restrict);
    
                entity.HasOne(d => d.User).WithMany(p => p.Referrals).HasForeignKey(d => d.UserId).OnDelete(DeleteBehavior.Restrict);
            });
    
            modelBuilder.Entity(entity =>
            {
                entity.HasKey(e => e.SubscriptionId);
    
                entity.Property(e => e.SubscriberId)
                    .IsRequired()
                    .HasMaxLength(450);
    
                entity.Property(e => e.SubscriptionExpires).HasColumnType("date");
                entity.Property(e => e.TotalCALs).HasDefaultValue(0);
    
            });
        }
    
        public virtual DbSet Countries { get; set; }
        public virtual DbSet Devices { get; set; }
        public virtual DbSet Downloads { get; set; }
        public virtual DbSet Invoices { get; set; }
        public virtual DbSet Notes { get; set; }
        public virtual DbSet ReferralSources { get; set; }
        public virtual DbSet Referrals { get; set; }
        public virtual DbSet Subscriptions { get; set; }
    }
    

    Or you can completely create the model without calling base.OnModelCreating, you can copy the OnModelCreating from the source code

提交回复
热议问题