В настоящее время я использую идентификатор ASP с MVC 5. Я хочу удалить поле номера телефона из таблицы AspNetUsers, но когда я использую команду add-migration, это вызывает следующее ошибка.Entity Framework 6, не может использовать метод Ignore для свойства
Вы не можете использовать Игнорировать метод на собственность «PhoneNumber» о типе «Models.DbModel.User», потому что этот тип наследует от типа «Microsoft.AspNet.Identity.EntityFramework.IdentityUser`
Здесь я уже прочитал массу вопросов, но все они сказали, что вы должны игнорировать свойство в своем базовом классе, однако в этом случае у меня нет доступа к базе.
Как я могу решить эту проблему?
Обновление: Когда я использовал свободный API в методе OnModelCreating, он работал, я не хочу использовать его таким образом, поэтому я разделил класс конфигурации для каждого объекта.
Ниже мой код:
производный Entity Класс
public class User: IdentityUser
{
public ICollection<Comment> Comments { get; set; }
}
класс Config
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());
}
}
Это будет работать только на свойствах * у вас есть доступ к *. Вы не можете применить его к свойству внутреннего класса IdentityUser, например EmailAddress. Однако это помогло мне скрыть «новое» свойство из IdentityFramework, поэтому спасибо :) –