我创建了一个数据库上下文。我想删除表AspNetUsers
中的一些列,例如PhoneNumber
,PhoneNumberConfirmed
,因为在我的申请中没有必要。
namespace TestTest.Infrastuctures
{
public class TestContext:IdentityDbContext<ApplicationUser>
{
public TestContext()
: base("TestContext")
{
}
public static TestContext Create()
{
return new TestContext();
}
public virtual DbSet<Category> Categories { get; set; }
public virtual DbSet<Product> Products { get; set; }
}
public class ApplicationUserEntityTypeConfiguration : EntityTypeConfiguration<ApplicationUser>
{
public ApplicationUserEntityTypeConfiguration()
{
Ignore(p => p.PhoneNumber);
Ignore(p => p.PhoneNumberConfirmed);
Ignore(p => p.EmailConfirmed);
Ignore(p => p.TwoFactorEnabled);
}
}
}
欢迎任何帮助或建议。
更新
这段代码解决了我的问题:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
var user = modelBuilder.Entity<ApplicationUser>();
user.Ignore(u => u.EmailConfirmed);
user.Ignore(u => u.PhoneNumber);
user.Ignore(u => u.PhoneNumberConfirmed);
var identityUserRole = modelBuilder.Entity<IdentityUserRole>();
identityUserRole.HasKey(r => new { r.UserId, r.RoleId });
var identityUserLogin = modelBuilder.Entity<IdentityUserLogin>();
identityUserLogin.HasKey(l => new { l.LoginProvider, l.ProviderKey, l.UserId });
var claims = modelBuilder.Entity<IdentityUserClaim>();
}
答案 0 :(得分:2)
我相信你可以这样做但不一定使用EntityTypeConfiguration
方法。而是尝试覆盖上下文中的OnModelCreating
方法:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<IdentityUser>()
.Ignore(p => p.PhoneNumber)
.Ignore(p => p.PhoneNumberConfirmed)
.Ignore(p => p.EmailConfirmed)
.Ignore(p => p.TwoFactorEnabled);
}
答案 1 :(得分:0)
转到ApplicationUser的类,删除PhoneNumber,PhoneNumberConfirmed的属性。
添加迁移,然后更新数据库。