实体框架6,不能对属性使用忽略方法



目前,我正在使用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,这可能不是你想要的

相关内容

  • 没有找到相关文章

最新更新