目前,我正在使用MVC 5 ASP身份。我想从AspNetUsers表中删除电话号码字段,但是当我使用add-migration命令时,它会导致以下错误:
你不能在类型上的属性'PhoneNumber'上使用Ignore方法"Models.DbModel。User',因为此类型继承自类型"Microsoft.AspNet.Identity.EntityFramework。IdentityUser '
我已经在这里阅读了大量的问题,但他们都说你必须忽略基类中的属性,然而,在这种情况下,我没有任何访问基类的权限。
我该如何解决这个问题?
Update:当我在OnModelCreating方法中使用流畅的API时,它工作了,我不想这样使用它,所以我为每个实体分离了配置类。
下面是我的代码:派生实体类
public class User: IdentityUser
{
public ICollection<Comment> Comments { get; set; }
}
配置类
public sealed class UserConfig : EntityTypeConfiguration<User>
{
public UserConfig()
{
ToTable("dbo", "Users");
Ignore(x => x.PhoneNumber);
Ignore(x => x.PhoneNumberConfirmed);
}
}
上下文类
public class WebsiteContext : IdentityDbContext
{
public WebsiteContext()
: base("XYZ")
{
}
public DbSet<Comment> Comment { get; set; }
//public DbSet<User> User { get; set; }
public static WebsiteContext Create()
{
return new WebsiteContext();
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Configurations.Add(new CommentConfig());
modelBuilder.Configurations.Add(new UserConfig());
}
}
尝试从[NotMapped]属性System.ComponentModel.DataAnnotations.Schema这可能会让你绕过这个限制,它已经被用来忽略映射中的enum,这可能不是你想要的