Я использую Entity Framework Core 2.2
, и все имена таблиц базы данных являются единственными, поэтому я overriding
соглашение о множественном именовании в OnModelCreating
метод
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
foreach (IMutableEntityType entityType in modelBuilder.Model.GetEntityTypes())
{
entityType.Relational().TableName = entityType.DisplayName();
}
}
Однако в некоторых случаях имена сущностей отличаются от имен таблиц, например
[Table("AzureSchemaVersionExecutionExtract", Schema = "dbo")]
public class AzureDataExtract
{
public int Id { get; set; }
public DateTime DateApplied { get; set; }
}
Когда я запускаю проект, он жалуется, так как не может найти таблицу AzureDataExtract
, поэтому я добавил следующий код в метод OnModelCreating
, и он работает. Мне нужно знать, это правильный способ реализации Data Annotations
и Singular Naming Convention
вместе
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
foreach (IMutableEntityType entityType in modelBuilder.Model.GetEntityTypes())
{
entityType.Relational().TableName = entityType.DisplayName();
}
modelBuilder.Entity<AzureDataExtract>().ToTable("AzureSchemaVersionExecutionExtract","dbo");
}