Ich benutze ASP.NET Core mit Identität und möchte Standard Db-Kontext zu erweitern. Wenn ich nicht verknüpfte Tabelle hinzufügen möchten füge ich nur eine neue Klasse:Hinzufügen neuer Entitäten zu DbContext
public partial class Table1
{
public int Id { get; set; }
public string Txt { get; set; }
}
und meine ApplicationDbContext erweitern:
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
: base(options)
{
}
public virtual DbSet<Table1> Table1 { get; set; }
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
// Customize the ASP.NET Identity model and override the defaults if needed.
// For example, you can rename the ASP.NET Identity table names and more.
// Add your customizations after calling base.OnModelCreating(builder);
builder.Entity<Table1>(entity =>
{
entity.ToTable("Table_1");
entity.Property(e => e.Id).HasColumnName("ID");
entity.Property(e => e.Txt)
.IsRequired()
.HasMaxLength(50);
});
}
}
dann eine Migration und update db erstellen. Es klappt. Aber wenn ich eine neue Tabelle hinzugefügt werden soll, die von IdentityDbContext Tabelle verknüpft:
public partial class Users
{
public int Id { get; set; }
public string UserId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public virtual AspNetUser User { get; set; }
}
natürlich AspNetUser Klasse existiert nicht (es durch IdentityDbContext erstellt wird, wie ich sie verstehe). Wie mache ich das richtig?
Ich habe es hinzuzufügen, da es bereits Projekt abgeschlossen ist, basierend auf Mitgliedschaft Provider –
Identität und Mitgliedschaft sich gegenseitig aus. Entweder Sie aktualisieren auf Identität oder bleiben bei der Mitgliedschaft. Sie sollten auf keinen Fall versuchen, beides gleichzeitig zu verwenden. –