这是一个假设,还是“这可能吗?”问题。
我在ASP.Net Core 2.2 MVC中使用实体框架。有没有办法使所有字符串从到大写?我不想将它们存储为大写,只希望在检索它们时将它们存储为大写。
相对于在模型属性上编写一堆“获取器”,我希望它在我的代码中仅 1位。
答案 0 :(得分:0)
阅读同一文档。将转换应用于各个字段(在OnModelCreating中)。
答案 1 :(得分:0)
要解决此问题,您可以尝试通过循环模型和属性来配置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);
}
}
}
}
}