Можно ли переименовать колонки принадлежащих типов?

Есть составной тип, который я настраиваю через Fluent API вызовом OwnsOne.

В результате в БД создаться поля по шаблону {Название свойства}_{Название поля}.

Я как-то могу переопределить это поведение?

Вот пример с метанита:

using Microsoft.EntityFrameworkCore;

namespace HelloApp
{
    public class User
    {
        public int Id { get; set; }
        public string Login { get; set; }
        public string Password { get; set; }
        public UserProfile Profile { get; set; }
    }
    public class UserProfile
    {
        public string Name { get; set; }
        public int Age { get; set; }
    }
    public class ApplicationContext : DbContext
    {
        public DbSet<User> Users { get; set; }
        public ApplicationContext()
        {
            Database.EnsureDeleted();
            Database.EnsureCreated();
        }
        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            optionsBuilder.UseSqlServer(@"Server=(localdb)\mssqllocaldb;Database=relationsdb;Trusted_Connection=True;");
        }
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            modelBuilder.Entity<User>().OwnsOne(u => u.Profile);
        }
    }
}

Ответы (1 шт):

Автор решения: Yaroslav

Как то так:

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder
            .Entity<User>()
            .OwnsOne(u => u.Profile)
            .Property(x => x.Name)
            .HasColumnName("Name");

        modelBuilder
            .Entity<User>()
            .OwnsOne(u => u.Profile)
            .Property(x => x.Age)
            .HasColumnName("Age");
    }

Результат:

введите сюда описание изображения

→ Ссылка