Согласно вашему коду, кажется, что вы хотите изменить имя таблицы и установить имя столбца, если это так, вы можете попробовать сослаться на следующий код, чтобы переопределить метод OnModelCreating:
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
: base(options)
{
}
public DbSet<Blog> Blogs { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
//Write Fluent API configurations here
//Property Configurations
modelBuilder.Entity<Blog>().ToTable("BLOGS");
modelBuilder.Entity<Blog>()
.Property(b => b.BlogId)
.HasColumnName("BLOG_ID");
}
}
Более подробную информацию можно найти по следующим ссылкам:
Конфигурация EF Core Fluent API
Типы объектов # Имя таблицы
Имена столбцов
Как указать отображение основной таблицы Entity Framework?
Изменить :
А как насчет второго правила конфига; modelBuilder.Properties (). Настроить (c => c .HasColumnName (c .ClrPropertyInfo.Name.ToUpper ())); Я не могу go пройти через каждый столбец, чтобы просто сделать его прописным
Там есть плагин с открытым исходным кодом ( Соглашения об именах ), который может вам помочь. Используя его UseUpperCaseNamingConvention, он может изменить имя таблицы и столбца на верхний регистр.
Вы можете использовать следующие шаги, чтобы использовать его:
Добавьте EFCore.NamingConventions из Nuget.
Включите соглашение об именах в методе OnConfiguring вашей модели:
public class SchoolContext : DbContext
{
public SchoolContext(DbContextOptions<SchoolContext> options) : base(options)
{
}
public DbSet<Customer> Customers { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
base.OnConfiguring(optionsBuilder);
optionsBuilder.EnableSensitiveDataLogging();
optionsBuilder
.UseSqlServer("Server=(localdb)\\mssqllocaldb;Database=TestDB;Trusted_Connection=True;MultipleActiveResultSets=true") //database connection string.
.UseUpperCaseNamingConvention();
}
}
После миграции вы можете увидеть снимок модели , это изменит имя таблицы и столбца, как показано ниже:
Then, after update the database, the table like this:
введите описание изображения здесь
[Примечание] The Naming Conventions - это подключаемый модуль, поддерживаемый сообществом: он не является официальной частью Entity Framework Core и никоим образом не поддерживается Microsoft.