Сделать ВСЕ строки из заглавной буквы базы данных Entity Framework - PullRequest
1 голос
/ 17 апреля 2019

Это гипотетически или "это возможно?" вопрос.

Я использую Entity Framework в ASP.Net Core 2.2 MVC. Есть ли способ сделать ВСЕ строки из базы данных в верхнем регистре? Я не хочу хранить их в верхнем регистре, я просто хочу, чтобы они были в верхнем регистре, когда я их получаю.

Предпочтительно, я бы хотел, чтобы в моем коде было просто 1 место , а не написание группы "геттеров" для свойств модели.

Ответы [ 2 ]

0 голосов
/ 18 апреля 2019

В качестве обходного пути вы можете попытаться настроить HasConversion, зациклив модели и свойства.

Попробуйте код как:

public class ApplicationDbContext : IdentityDbContext
{
    public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
        : base(options)
    {
    }
    public DbSet<Product> Products { get; set; }
    public DbSet<Tag> Tags { get; set; }
    protected override void OnModelCreating(ModelBuilder builder)
    {
        base.OnModelCreating(builder);
        var converter = new ValueConverter<string, string>(
                v => v,
                v => v.ToUpper());
        foreach (var entityType in builder.Model.GetEntityTypes())
        {
            foreach (var property in entityType.GetProperties())
            {
                if (property.ClrType == typeof(string))
                {
                    builder.Entity(entityType.Name)
                           .Property(property.Name)
                           .HasConversion(converter);
                }
            }
        }
    }
}
0 голосов
/ 17 апреля 2019
...